專利名稱:帶有組幀錯誤檢測的通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通信系統(tǒng),它在主動單元(例如一臺檢測器這樣的外部單元)和從動單元(例如一臺發(fā)動機控制器這樣的電子控制單元)之間實現(xiàn)數(shù)據(jù)的發(fā)送和接收。
有這樣一種已知的如圖9所示的通信系統(tǒng)用于在主動單元和從動單元之間發(fā)送和接收數(shù)據(jù),其中主動單元100和從動單元110-130通過通信線140和連接裝置150連接起來,從動單元110-130在接收到由主動單元100經(jīng)由通信線路140送出的請求信息后,就為該請求信息按從動單元110-130的優(yōu)先級別順序地經(jīng)由通信線路140送出應(yīng)答信息。
圖9所示的系統(tǒng)的安排將作簡單的解釋。第一從動單元110含有一個CPU 111,它主要用于通信,還含有一個CPU 112,它主要用于控制。CPU111和一個通信I/O(輸入/出)設(shè)備113相連,后者能夠監(jiān)測從主動單元100來的請求信息和從其它從動單元120和130來的應(yīng)答信息,而CPU 112則和一個控制I/O設(shè)備相連用于控制。CPU 111和CPU 112由數(shù)據(jù)總線115連接在一起。
CPU 111包括一個能方便串行通信的串行接口(S.I.)116、一個RAM、一個ROM等。其它從動單元120和130和第一從動單元110有相同的內(nèi)部安排。
請求信息和應(yīng)答信息每個都由若干個1字節(jié)(至多11字節(jié))的數(shù)據(jù)組成。每個1字節(jié)的數(shù)據(jù)有10位的長度,它包括一個低有效的起始位(S)、8個數(shù)據(jù)位(0-7)和一個高有效的停止位(P),如
圖10所示。
為了處理每個都由10位數(shù)據(jù)組成的請求信息和應(yīng)答信息,串行接口116是專門安排成如圖11所示。
按照這一安排,在串行輸入終端201上收到的串入數(shù)據(jù)經(jīng)過緩沖器202而由串行狀態(tài)寄存器203保存。
在寄存器203檢測到起始位(S)后,后繼的數(shù)據(jù)位(0-7)以預(yù)定的波特率被移入串入移位寄存器204。當寄存器203檢測到停止位(P)時,由10位組成的1字節(jié)數(shù)據(jù)被轉(zhuǎn)移到串入數(shù)據(jù)寄存器205,并產(chǎn)生一個中斷請求(見圖12A和12B)使軟件可以通過數(shù)據(jù)總線206訪問串入數(shù)據(jù)。
另一方面,在串行輸出方式下,輸出數(shù)據(jù)由軟件經(jīng)數(shù)據(jù)總線206寫入串出寄存器207,串行輸出操作由控制器208起動。寄存器207把數(shù)據(jù)轉(zhuǎn)移到串出移位寄存器209。最初,起始位(S)從串出終端211經(jīng)由緩沖器210而釋放出來。然后第二位(0)到停止位(P)以相同方式輸出,然后中斷請求被發(fā)送到軟件。
對于如上所述的通信系統(tǒng),通常的實踐是在上述的主動單元100和從動單元110-130之間的信息交換之前進行初始化。這種初始化一般按照國際標準ISO-9141-2所述的步驟進行。下面參照圖13A和13B簡單地說明基于此國際標準的通信步驟。
最初,主動單元100在確認通信線路140有2毫秒或更長的空閑時間后就通過通信線路140以5bps(每秒位)的波特率送出一個初始化地址(如33H)。最高優(yōu)先級的第一從動單元110確認空閑時間為W1或更長,然后就經(jīng)通信線路140以由初始化地址所決定的波特率(如10.4kbps)送出同步信號(如55H)。
在發(fā)送同步信號之后,第一從動單元110確認空閑時間為W2或更長,就經(jīng)通信線路140送出一個關(guān)鍵字1(KW1,如94H)。在發(fā)送關(guān)鍵字1以后第一從動單元110確認空閑時間成為W3或更長,然后通過通信線路140發(fā)送另一關(guān)鍵字2(KW2,如94H)。
在第一從動單元110發(fā)送KW2之后,主動單元100確認空閑時間為W4或更長,然后通過通信線路140送出KW2的反相形式(如6BH)。
在主動單元100發(fā)送KW2的反相形式后,第一從動單元110確認空閑時間為W4或更長,然后在通信線路140上送出初始地址的反相形式(如CCH)。在發(fā)送完這個反相信號后,初始化過程就完成。
其余從動單元120和130通過用它們自己的I/O設(shè)備監(jiān)測在通信線路140上的信號而實現(xiàn)它們對主動單元100和第一從動單元110的各自的初始化過程。
上述的W1到W4是在國際標準中說明的在相應(yīng)的范圍內(nèi)任意設(shè)定的,具體地說W1為60-300毫秒,W2為5-20毫秒,W3為0-20毫秒,W4為25-50毫秒。
在完成了初始化后,在主動單元100和從動單元110-130之間就以初始地址決定的波特率(在本例為10.4kbps)開始了請求信息和應(yīng)答信息的交換(發(fā)送/接收)。這種信息交換也在符合國際標準的情況下進行。這個通信過程將參考圖14A-14D作一簡單的解釋。
最初,主動單元100經(jīng)通信線路140發(fā)出請求信息1(圖14A)以請求由從動單元110-130執(zhí)行某個過程,最高優(yōu)先級的第一從動單元110在發(fā)送請求信息1結(jié)束后,經(jīng)過一段空閑時間P2(范圍在0到50毫秒間的任意時間段)之后經(jīng)通信線路140為該請求信息1發(fā)送一個應(yīng)答信息(圖14B)。
在第一從動單元110的應(yīng)答信息發(fā)送完成時,次優(yōu)先級的第二從動單元120在確認經(jīng)過了空閑時間P2后就發(fā)送它自己的應(yīng)答信息。最后,在第二從動單元120的應(yīng)答信息發(fā)送完成時,最低優(yōu)先級的第三從動單元130確認經(jīng)過了空閑時間P2后就發(fā)送它自己的應(yīng)答信息(圖14D)。
在第三從動單元130發(fā)送完應(yīng)答信息時,主動單元100在確認經(jīng)過了空閑時間P3(在范圍為55毫秒到5秒間的任意時間段)后就發(fā)送下一個請求信息2。從動單元110-130以上面說明的同樣方式順序地發(fā)送它們自己的應(yīng)答信息。
國際標準規(guī)定,如果空閑時間持續(xù)2毫秒或更長就可發(fā)送圖13A的初始化地址。在圖14A-14D所示的例子中,在第三從動單元130發(fā)送應(yīng)答信號結(jié)束之后到主動單元100開始發(fā)送請求信息2之間的空閑時間P3將為55毫秒或更多,因此主動單元100可能在這一空閑時間內(nèi)錯誤地發(fā)送初始地址。就是說,在以10.4kbps的高波特率交換信息期間,主動單元100可能以低至5bps的慢波特率發(fā)送初始地址。
在此情況下,每個從動單元110-130首先從CPU 111的串入終端201(圖11)接收初始地址的起始位(低電平),把該位轉(zhuǎn)移到寄存器204和205,并起動中斷過程。從動單元110-130是用于接收10.4kbps的數(shù)據(jù)并且實際上接收5bps的起始位的,在這種情況下,它將實際上重復(fù)約200次地接收一個全部為低電平位的1字節(jié)數(shù)據(jù)(圖10),因此,連續(xù)地產(chǎn)生了約200次的中斷請求。
每個約200次輸入的1字節(jié)數(shù)據(jù)如圖15A1所示那樣全部是低電平的位,因此CPU不能夠在所有中斷事件(圖15A2)中檢測到正確的停止位(高電平),導(dǎo)致在所有中斷事件中發(fā)生組幀錯誤(圖15A3停止位沒有正確的電平)。
因此,如果主動單元100在以高波特率交換信息期間發(fā)送具有極低波特率的初始地址時,那么它就會使從動單元110-130發(fā)出多個中斷。這樣,CPU就僅執(zhí)行中斷過程而使基本例行程序和其它處理功能不能完成并使從動單元癱瘓。
當主動單元100在對多個從動單元初始化后與這些從動單元(例如所有從動單元110-130)有正常的數(shù)據(jù)交換(在10.4kbps)、并且如果主動單元100對從動單元之一(如第二從動單元120)初始化的話,就會發(fā)生上述問題。
為了對付這種情況,常規(guī)系統(tǒng)備有一個檢測裝置以檢測組幀錯誤的發(fā)生,并根據(jù)基本例程和其它處理功能被阻礙的推測,在檢測到發(fā)生組幀錯誤時,中斷過程就被禁止(圖15B4),如圖15B1-B4所示。
但是在這種情況下會產(chǎn)生下列問題。
就是說,在上述通信系統(tǒng)用于例如陸上車輛的情況下,在主動單元100或從動單元110-130接收信息時,CPU 111可能接收來自收發(fā)器的無線電波或來自點火系統(tǒng)的干擾,而這種干擾可能取消停止位,如相應(yīng)于圖15A-15D中的圖16A-16D所示的那樣。由從動單元接收這種信息明顯地導(dǎo)致產(chǎn)生組幀錯誤。
這種情況下產(chǎn)生組幀錯誤的原因和相繼觸發(fā)中斷過程的情況有很大不同,后者是如上所述的在以高波特率交換信息期間以極低波特率發(fā)送初始地址所引起的。
但是,上述傳統(tǒng)方式在這種情況下也會根據(jù)組幀錯誤的產(chǎn)生而起作用,從而禁止中斷過程,因此每個從動單元將不能從主動單元100或別的從動單元接收信息,如圖16A-16D所示。
當車輛在從主動單元100或從動單元110-130接收信息期間起動時,向從動單元110-130供電的電壓將因起動操作而下降,可能導(dǎo)致信息數(shù)據(jù)的丟失。信息的停止位可能丟失,信息的接收明顯會導(dǎo)致產(chǎn)生組幀錯誤。
這種情況下組幀錯誤產(chǎn)生的原因也和相繼觸發(fā)中斷過程的情況有很大不同,上述的傳統(tǒng)方式在此情況下也會根據(jù)組幀錯誤的產(chǎn)生而起作用,從而禁止中斷過程,因此每個從動單元將不能從主動單元100或別的從動單元接收信息。
本發(fā)明就是試圖處理上述問題,其目的是提供一種通信系統(tǒng),在出現(xiàn)組幀錯誤時它禁止中斷過程,在其中,系統(tǒng)檢查組幀錯誤產(chǎn)生的原因,并且如果組幀錯誤的原因是觸發(fā)一系列中斷過程時,則禁止中斷過程以允許實施基本例程和其它處理功能。
按照本發(fā)明,組幀錯誤檢測并不是在檢測到組幀錯誤時就立即禁止中斷過程,而是根據(jù)確定檢測到頻繁發(fā)生組幀錯誤才禁止中斷過程。因此,即使發(fā)生了組幀錯誤,也不發(fā)生對中斷過程的禁止,除非組幀錯誤產(chǎn)生的原因是頻繁地產(chǎn)生組幀錯誤,例如,當出現(xiàn)了噪聲而要消除停止位的情形,因此基于這一中斷過程的固有的數(shù)據(jù)通信仍可有效地執(zhí)行。如果組幀錯誤的原因是產(chǎn)生頻繁的組幀錯誤,則將會發(fā)生中斷過程禁止,在這種情況下基本例程和其它處理功能是根據(jù)優(yōu)先級來執(zhí)行的。
最好能確定組幀錯誤是否連續(xù)地檢測到一定次數(shù)或更多。這樣,當組幀錯誤連續(xù)地發(fā)生一定的次數(shù)或更多,則可以認為組幀錯誤的原因是連續(xù)地觸發(fā)多次中斷過程,因而中斷過程被禁止。
最好能確定檢測到組幀錯誤的次數(shù)相對于中斷過程被初始化的次數(shù)是否達到一定的比例或更多?;蛘撸_定檢測到組幀錯誤的次數(shù)相對于從因組幀錯誤而第一次檢測到組幀錯誤算起的時間段內(nèi)的組幀錯誤是否達到一定的比例或更多。
從動單元最好是裝在陸地車輛上的。在此情況下,盡管因噪聲或車輛起動而會在從動單元內(nèi)發(fā)生組幀錯誤,但中斷過程能夠被啟動,基于中斷過程的固有的數(shù)據(jù)通信仍能有效執(zhí)行。
按照本發(fā)明,在從動單元中,在組幀錯誤產(chǎn)生的原因不會產(chǎn)生頻繁的組幀錯誤的情況下則中斷過程的禁止就不會發(fā)生,使基于中斷過程的內(nèi)在數(shù)據(jù)通信可有效地進行。在組幀錯誤產(chǎn)生的原因會連續(xù)地產(chǎn)生多個中斷過程時,則發(fā)生禁止中斷過程,使基本例程和其它處理功能根據(jù)優(yōu)先級來實施。
在所附的插圖中圖1是本發(fā)明第一實施例的總體方塊圖;圖2是表明由第一實施例各控制器執(zhí)行的初始化地址接收過程的流程圖;圖3表示圖2的305步的子例程;圖4是表明由第一實施例每一控制器所執(zhí)行的基本例程的流程圖;圖5是表明由第一實施例的各控制器所執(zhí)行的串行輸入中斷過程的流程圖;圖6A-6D是按照第一實施例在CPU按10.4kbps來接收數(shù)據(jù)時的等待期間,在接收5bps的初始化地址的情況下的信號定時圖;圖7是表明本發(fā)明的第二實施例各控制器所執(zhí)行的串行輸入中斷過程的流程圖;圖8是表明本發(fā)明的第三實施例各控制器所執(zhí)行的串行輸入中斷過程的流程圖;圖9是傳統(tǒng)通信系統(tǒng)的總體方塊圖;圖10是表明1字節(jié)數(shù)據(jù)的位格式的定時圖;圖11是表明圖9所示系統(tǒng)的串行接口116的內(nèi)部安排的方塊圖;圖12A-12B是CPU的串入數(shù)據(jù)輸入端信號的定時圖;圖13A和13B是在初始化過程中主動單元和從動單元之間交換的信號的定時圖;圖14A-14D是表明主動單元和從動單元之間請求信息和應(yīng)答信息的發(fā)送過程的定時圖;圖15A1-15A3是CPU在按10.4kbps來進行通信的期間在接收5bps的初始化地址的情況下的信號定時圖,15B1-15B4是在根據(jù)檢測到組幀錯誤而禁止中斷的情況下的和圖15A1-15A3相同的信號的定時圖;和圖16A-16D是當出現(xiàn)因噪聲所致的組幀錯誤時的信號的定時圖。
本發(fā)明將參照示于附圖的各實施例而說明。
示于圖1到5的第一實施例用于陸上車輛的診斷系統(tǒng)中。
本實施例的系統(tǒng)包括安裝在車上的作為從動單元的多個電子控制器(發(fā)動機控制器1、發(fā)送(transmission)控制器2等)和通過通信線路3和診斷連接器4連接的作為主動單元的外部連接診斷測試器5,在診斷測試器5和各個電子控制器之間的通信按1到n的關(guān)系來實現(xiàn)。
電子控制器事先規(guī)定了優(yōu)先級以實現(xiàn)1到n的數(shù)據(jù)通信,當故障診斷測試器5通過通信線路3向電子控制器發(fā)送請求信息以請求執(zhí)行某些過程時,電子控制器按照優(yōu)先級經(jīng)通信線路3順序地送回它們的應(yīng)答信息。具體說,在本實施例中優(yōu)先級是這樣規(guī)定的,即發(fā)送控制器2比發(fā)動機控制器1具有更高的優(yōu)先級。
假定故障診斷測試器5和車載電子控制器之間的通信是根據(jù)符合國際標準(ISO-9141-2)的協(xié)議而進行的。下面將解釋發(fā)動機控制器1的結(jié)構(gòu)和功能以作為車載電子控制器的一個例子。
發(fā)動機控制器包括CPU11、ROM12、RAM13、輸入電路14、輸出電路15、模/數(shù)變換器16和通信電路17。通信電路17是一個輸入/輸出緩沖電路,它驅(qū)動通信線路3。
輸入電路14接收傳感器信號,這主要是些脈沖信號,是由傳感器21產(chǎn)生的用于檢測發(fā)動機轉(zhuǎn)速的(具體地說是曲軸角度傳感器),和由傳感器22產(chǎn)生的車輛速度信號,模數(shù)轉(zhuǎn)換器16接收傳感器信號,這是一些模擬信號,由安放在車輛各處的油門傳感器23、空氣流量計24、水溫傳感器25和氧傳感器26等所產(chǎn)生。
這些信號作為檢測到的值的傳感器數(shù)據(jù)而存儲在RAM13的數(shù)據(jù)區(qū)里,這些數(shù)據(jù)由CPU11用于計算燃料噴射量和點火時間。RAM13除了具有數(shù)據(jù)區(qū)外還有用于計數(shù)器、緩沖和標志寄存器的區(qū)域,將在后面說明。
CPU11根據(jù)事先存儲在ROM12中的控制程序?qū)Υ鎯υ赗AM13中的傳感器數(shù)據(jù)作預(yù)定的計算,由此來確定燃油噴射值和點火時間,并確定將在后面說明的與故障診斷測試器5的通信信息的交換(即發(fā)送/接收)和由信息所規(guī)定的診斷過程。存儲在ROM12中的控制程序包括一個計數(shù)程序,它為RAM13中的計數(shù)器實現(xiàn)以軟件為基礎(chǔ)的計數(shù)。
由CPU計算的燃油噴射值送到輸出電路15,它向發(fā)動機控制裝置27送出表示燃油噴射量的信號。發(fā)動機控制裝置27例如是個燃油噴射閥。
CPU11包含一個串行接口(未示出),它便于實現(xiàn)串行通信,串行接口的內(nèi)部安排如圖11所示。
故障診斷測試器5和上述的電子控制器情況相同,被設(shè)置成包括CPU、ROM、RAM、通信電路等。故障診斷測試器5的診斷方式由檢驗員在設(shè)于故障診斷測試器5的外部表面上的操作裝置5a(具體地為一鍵盤)上進行設(shè)定,而取決于診斷方式的請求信息則通過診斷連接器4而送往電子控制器。
故障診斷測試器5能夠把對請求信息的回答信息的內(nèi)容在顯示設(shè)備(未示出)上通過列表或用圖表顯示而向檢驗員報告結(jié)果。
診斷連接器4經(jīng)過點火開關(guān)18由電池19供給電源,從而使測試器5在和車載電子控制器進行電氣連接時由診斷連接器4向故障診斷測試器5供電。
在故障診斷測試器5和電子控制器之間的信息交換之前,按上面說明而安排的車輛通信系統(tǒng)執(zhí)行用于故障診斷測試器5和電子控制器的初始化過程。初始化過程已經(jīng)結(jié)合圖13而解釋過,這里不再重復(fù)。
在初始化過程之后,在故障診斷測試器5和電子控制器之間進行信息交換。信息交換已結(jié)合圖14解釋過,此處不再重復(fù)。
下面將參考圖2到圖5詳細說明由各電子控制器實施的初始化過程和應(yīng)答信息發(fā)送過程。上面所解釋的用于這些過程的計數(shù)器、緩沖器和標志寄存器在點火開關(guān)接通而使電源加到電子控制器時都被初始化到“0”。
最初,圖2的中斷例程以2毫秒的間隔被起動以接收由故障診斷測試器5以5bps(每位200毫秒)發(fā)送的初始地址(圖13A)。例程的第300步確定是否有數(shù)據(jù)裝入了后面要解釋的地址數(shù)據(jù)緩沖器(1)到(10),從而確定初始地址的接收已否完成。
如果第300步檢測到初始地址接收尚未完成,即地址數(shù)據(jù)緩沖器(1)到(10)中沒有數(shù)據(jù),則在305步的順序轉(zhuǎn)到圖3所示的子例程以準備接收初始地址的1位數(shù)據(jù)。具體說,第一步350使地址接收計數(shù)器CT2M增加1,下一步355則確定通信線路3是否處于高電平(H)狀態(tài)。
如果檢測到通信線路3是在高電平,下一步360把用于對檢測到通信線路3為高電平的次數(shù)進行計數(shù)的計數(shù)器CBUSH增1,順序繼續(xù)到365步,否則,如檢測到通信線路3為低電平,則順序仍不變地回到365步。
365步確定計數(shù)器CT2M是否已達到100,從而確定初始地址的全部1位數(shù)據(jù)是否已經(jīng)收到。在確定結(jié)果為“否”的情況下,表明1位數(shù)據(jù)的接收尚未完成,則順序退出此例程而無變動。
否則如在肯定的確定結(jié)果時,表明所有1位數(shù)據(jù)的接收已完成,則下一步370清除計數(shù)器CT2M,從而準備接收下一個1位數(shù)據(jù)。
下一步375確定計數(shù)器CBUSH是否達到一個確定的數(shù)(在本實施例為50)。如果確定結(jié)果是肯定的,表明接收的是高電平1位數(shù)據(jù),則下一步380把地址數(shù)據(jù)緩沖器(m)置成高電平“1”。然后390步消除計數(shù)器CBUSH,從而準備接收下一個1位數(shù)據(jù),從而使順序退出這個子例程。
另外,在確定結(jié)果為“否”的情況下,表明接收低電平的1位數(shù)據(jù),385步把地址數(shù)據(jù)緩沖器(m)置成低電平“0”,390步清除計數(shù)器CBUSH,使順序退出此例程。
305步的過程(圖2)被重復(fù)直到初始化地址已置入全部地址數(shù)據(jù)緩沖器(1)到(10),導(dǎo)致300步的確定結(jié)果為肯定,然后310步的過程被執(zhí)行。
310步把中斷屏蔽標志置位,從而起動串入中斷過程(SIN中斷過程),并使標志XFRERR復(fù)位。標志XFRERR將在后面結(jié)合圖5來解釋,它在發(fā)生組幀錯誤時被置位。
每個控制器除圖2和圖3的過程外還有自己的基本例程,如圖4所示。這個例程的400步確定初始地址是否已置于地址數(shù)據(jù)緩沖器(1)到10)中,從而檢測初始地址的接收是否已經(jīng)完成。在檢測到未完成時,順序不變地退出此過程。
否則在檢測到接收初始地址在400步已完成時,下一步405就通過確定發(fā)送圖13中反相的初始地址是否已經(jīng)完成,從而確定初始化過程是否已經(jīng)全部完成。在檢測到未完成時,順序轉(zhuǎn)向410步的子例程。
410步在ROM12中為在同步信號、KW1、KW2和初始地址的反相信號中要被發(fā)送的信號查找空閑時間(W1-W2)。例如,當就要發(fā)送同步信號時,410步就在ROM12中查找時間W1。
下一步415確定對空閑時間進行計數(shù)的空閑計數(shù)器是否等于或大于已在410步中取出的空閑時間。在確定的結(jié)果為肯定的情況下,則下一步420發(fā)送一個信號,順序退出此例程,否則,如為否定的確定結(jié)果,則順序不作變化地退出例程??臻e計數(shù)器根據(jù)一個定時器(未示出)在每個時間中斷事件時(例如4毫秒中斷)就把計數(shù)往上加1。
410步包括一個確定步驟,用于確定是否從故障診斷測試器5收到反相的KW2信號。
另一方面,如果405步檢測到整個初始化過程的完成,則下一步425確定是否從故障診斷測試器5收到一個請求信息。
在確定沒有收到請求信息的情況下,順序不作變化而退出例程,或者,而確定收到了請求信息的情況,則順序轉(zhuǎn)向430步的子例程,從而為該請求信息產(chǎn)生一個應(yīng)答信息。
下一步435在ROM12中查找發(fā)送這一應(yīng)答信息所需的空閑時間P2(在本實施例中為24毫秒),下一步440確定空閑計數(shù)器是否大于或等于查找出的空閑時間P2。如果確定的結(jié)果是肯定的,445步發(fā)送應(yīng)答信息,然后順序退出例程。
在完成了初始化地址的接收后,每個電子控制器進入以10.4kbps串行通信的狀態(tài)。串行通信在圖5所示的SIN中斷過程中進行,這將在下面說明。SIN中斷過程是由供給CPU的一個串行輸入中斷所觸發(fā)的。
具體地說,500步的SIN中斷是在每次從故障診斷測試器5收到反相的KW2信號或1位的請求信息數(shù)據(jù)時發(fā)出的;或者是從別的電子控制器收到同步信號、KW1、KW2、反相的初始化地址信號或應(yīng)答信息的1位數(shù)據(jù)時發(fā)出的。
下一步505確定這個SIN中斷過程是否根據(jù)超限錯誤標志而由超限錯誤所觸發(fā)的,這個超限錯誤標志是在發(fā)生超限時置位的。超限錯誤表明當圖11的串入終端201收到10位的串行數(shù)據(jù)且該數(shù)據(jù)轉(zhuǎn)移到寄存器204時,另一數(shù)據(jù)已經(jīng)裝在數(shù)據(jù)目的寄存器205內(nèi)了。
如果505步確定SIN中斷過程是由超限錯誤觸發(fā)的,則順序轉(zhuǎn)向510步的子例程,從而執(zhí)行發(fā)生SIN錯誤的過程(例如清除串行數(shù)據(jù)緩沖器以裝入SIN數(shù)據(jù))。下一步560清除SIN中斷請求標志,從而準備接受下一字節(jié)數(shù)據(jù)的SIN中斷。SIN中斷請求標志記錄中斷請求的接收,當發(fā)出中斷請求時,它在硬件的基礎(chǔ)上被置位。
在505步確定這次SIN中斷過程不是由超限錯誤所觸發(fā)的情況下,515步根據(jù)在發(fā)生組幀錯誤時被置位的組幀錯誤標志而確定這次SIN中斷過程是否由組幀錯誤所觸發(fā)。組幀錯誤表明停止位是不正確的值。
在515步確定SIN中斷過程是由組幀錯觸發(fā)的情況下,520步確定標志XFRERR是否置位,從而確定組幀錯是否連續(xù)地發(fā)生了兩次或多次。如果確定的結(jié)果是否定的,即確定了組幀錯誤是第一次的出錯,則535步使標志XFRERR置位,并在510步和560步的過程執(zhí)行之后,順序退出此例程。
如果520步確定的結(jié)果是肯定的,表明組幀錯連續(xù)發(fā)生了兩次或更多次,則525步使中斷屏蔽標志復(fù)位,由此以通過阻止另一個SIN中斷請求進入CPU從而禁止SIN中斷過程并準備接收初始化地址。因此,圖2的過程可連續(xù)地執(zhí)行而不會掛起。
530步清除地址數(shù)據(jù)緩沖器(1)到(10)使得圖2的300步對確定的結(jié)果成為否定的。然后執(zhí)行510和560步的過程,接著順序退出此例程。
另一方面,如果515步確定SIN中斷過程設(shè)有由組幀錯誤觸發(fā),則540步使XFRERR標志復(fù)位,順序轉(zhuǎn)向545步的子例程以執(zhí)行把SIN數(shù)據(jù)裝入串行數(shù)據(jù)緩沖的過程。最后,執(zhí)行560步的過程。
在如上面所述的本實施例中,當515步檢測到發(fā)生組幀錯誤時,520步進一步確定組幀錯誤是否連續(xù)發(fā)生兩次或更多,525步僅在確定了組幀錯誤已連接地發(fā)生了兩次或更多的情況下才禁止SIN中斷過程。否則,540步把XFRERR標志復(fù)位以保持SIN中斷過程仍被允許,這主要是根據(jù)下面的理由。
515步中得出肯定的確定結(jié)果的可能情況包括CPU在等待接收4kbps數(shù)據(jù)的期間接收到5bps的初始化地址,還包括CPU11接收一個被來自收發(fā)器的無線電波或來自點火系統(tǒng)的噪聲所消除的錯誤的數(shù)據(jù)停止位。
在前一種情況下,連續(xù)地發(fā)生一系列的組幀錯誤,導(dǎo)致520步得出的確定結(jié)果為肯定。這樣,除非SIN中斷過程被禁止,否則基本例程和其它過程不再進行。因此,根據(jù)本實施例,530步禁止SIN中斷過程,從而使得基本例程和其它過程根據(jù)優(yōu)先級而實現(xiàn)。
在后一種情況下,可以相當肯定地認為,由于噪聲而使停止位被消除的錯誤將不會連續(xù)發(fā)生兩次或更多。因此,515步在下一循環(huán)中將作出否定的確定結(jié)果。根據(jù)這一設(shè)想,在本實施例中,540步把XFRERR標志復(fù)位以保持SIN中斷過程被允許,從而使得根據(jù)SIN中斷的固有的數(shù)據(jù)通信仍能執(zhí)行。
在本實施例中,525步當CPU11處于等待接收4kbps的數(shù)據(jù)的狀態(tài)期間、在收到5bps的初始化地址時就禁止SIN中斷過程,就像上面情況那樣。但是,在完成了初始化地址接收的時候,圖2的300步使確定的結(jié)果為肯定,在其后跟隨著310步的過程,這時SIN中斷過程可以重新開始。
圖6A-6D表明當CPU11處于等待接收10.4kbps的數(shù)據(jù)的狀態(tài)期間在接收5bps初始化地址時在數(shù)據(jù)總線上的數(shù)據(jù)信號(圖6A)、中斷請求信號(圖6B)、組幀錯誤信號(圖6C)和中斷禁止信號(圖6D)的定時圖。
下面本發(fā)明的第二和第三實施例將只對它們和上面所述的第一實施例不同之處作說明。
第二和第三實施例根據(jù)下面的事實(1)和(2)。
(1)在正常情況下,當在10.4kbps的串行通信期間收到5bps的初始化地址時,如上所述會連續(xù)發(fā)生組幀錯誤。但是,在接收初始化地址期間如出現(xiàn)外部噪聲則這些組幀錯誤不可能會連續(xù)地發(fā)生。
(2)在相當程度上可以肯定,在接收初始化地址期間外部噪聲的入侵的事件不會連續(xù)地發(fā)生多次。
根據(jù)這些事實(1)和(2),第二實施例設(shè)計成這樣,當組幀錯誤發(fā)生的次數(shù)相對于觸發(fā)SIN中斷過程的次數(shù)達到一定的比例或更多時就禁止SIN中斷過程。第三實施例則設(shè)計成這樣,當組幀錯誤發(fā)生的次數(shù)在從發(fā)生第一次組幀錯誤以后的某一時間段內(nèi)達到一定的比例時就禁止SIN中斷過程。
換句話說,第二和第三實施例設(shè)計成這樣,當組幀錯誤頻繁地發(fā)生時,即使組幀錯誤的發(fā)生不是連續(xù)的,也禁止SIN中斷過程。
實現(xiàn)第二和第三實施例的具體方法將分別結(jié)合圖7和圖8來說明。和第一實施例(圖5)中相同的那些處理步驟用相同的參考數(shù)字來標明,它們的說明此處從略。
在圖7所示的第二實施例中,在每次從故障診斷測試器5收到反相的KW2信號或1位數(shù)據(jù)的請求信息時或從別的電子控制器收到同步信號,KW1、KW2、反相的初始地址信號或1位數(shù)據(jù)的應(yīng)答信號數(shù)據(jù)時,500步的SIN中斷過程就被起動。
下一步501對計數(shù)器CSIN增1,這個計數(shù)器對觸發(fā)SIN中斷過程的次數(shù)進行計數(shù)。然后,當505步作出確定結(jié)果為肯定時,510步的過程就被執(zhí)行,或者對于否定的確定結(jié)果,則順序進行到確定步驟515。
如果515步確定的結(jié)果是肯定的,則521步對用于對發(fā)生組幀錯誤的次數(shù)進行計數(shù)的計數(shù)器CFRMER增1,然后510步的過程被執(zhí)行。否則,如515步作出否定的確定結(jié)果,則545步的過程被執(zhí)行。
下一步546確定計數(shù)器CFRMER是否變成大于或等于一定的數(shù)值(在本實施例中為3)。如確定的結(jié)果為肯定的,表明組幀錯誤頻繁地發(fā)生,則下面的547和548步執(zhí)行和圖5的525步和530步相同的過程。550步和551步清除計數(shù)器CSIN和CFRMER,然后在560步的過程之后,順序就退出此例程。
另一方面,如果546步作出否定的確定結(jié)果,則下一步549確定計數(shù)器CSIN是否大于或等于一定的數(shù)值(在本實施例為5)。在確定結(jié)果為否定的情況下,560步的過程被執(zhí)行,然后順序退出此例程。在另一種確定結(jié)果為肯定的情況下,550、551和560步的過程被執(zhí)行,然后順序退出此例程。
如上所述,在第二實施例中,如果發(fā)生組幀錯誤的次數(shù)相對于觸發(fā)SIN中斷過程的次數(shù)達到一定的比例或更多(在本實施例中為三次組幀錯誤相對于五次SIN中斷過程事件),則SIN中斷過程被禁止,因此即使在接收初始化地址期間有外部噪聲的入侵的事件中SIN中斷過程仍然可被禁止。
在圖8所示的第三實施例中,在每次從故障診斷測試器5接收反相的KW2信號或1位數(shù)據(jù)的請求信息數(shù)據(jù),或者從別的電子控制器接收同步信號、KW1、KW2、反相的初始化地址信號或1位數(shù)據(jù)的應(yīng)答信息數(shù)據(jù)時,500步的SIN中斷過程就被起動。
如果505步的確定過程作出一個肯定的確定結(jié)果,則510步的過程被執(zhí)行,或者在否定的確定結(jié)果時就執(zhí)行515步的過程。如果515步作出否定的確定結(jié)果,則執(zhí)行545步的過程,而對于肯定的確定結(jié)果則執(zhí)行521步的過程。
在521步的過程之后,下一步522將確定計數(shù)器CFRMER是否為“1”,由此而確定組幀錯誤是否第一次發(fā)生。
如果522步作出一個肯定的確定結(jié)果,下一步523就清除計數(shù)器CTSIN,這個計數(shù)器對自第一次發(fā)生組幀錯誤后所經(jīng)過的時間進行計數(shù),然后執(zhí)行510步的過程。否則,如果522步作出否定的確定結(jié)果,則順序不作變化地進行到510步的過程。計數(shù)器CTSIN在每次定時器中斷(2毫秒中斷)事件時就增加計數(shù)1。
如果546步的確定作出肯定的確定結(jié)果,則執(zhí)行547和548步的過程。553步和554步清除計數(shù)器CSIN和CTSIN,然后在560步的過程之后,順序退出此例程。
另一方面,如果546步所作的確定結(jié)果是否定的,則552步確定計數(shù)器CSIN是否變得大于或等于一定的時間段(在本實施例中為20毫秒)。如果確定的結(jié)果是否定的情況,則執(zhí)行560步的過程,并且順序就退出此例程。在另外的為肯定的確定結(jié)果的情況下,則執(zhí)行553、554和560步的過程,然后順序退出此例程。
如上所述,在這一實施例中,如果組幀錯誤發(fā)生的次數(shù)在從第一次發(fā)生組幀錯誤之后的一定的時間段(20毫秒)內(nèi)達到一定的比例(3次)或更多,則SIN中斷過程被禁止,因而即使在接收初始化地址期間有外部噪聲入侵的事件,SIN中斷過程仍可被禁止。
此外,本發(fā)明可以用下列方式加以修改。
在圖3的例程中,355步和360步的過程可以改變成把當前正在接收的數(shù)據(jù)裝入到一個接收緩沖器(n),375步的確定步驟則改變成確定裝在接收緩沖器(1)到(100)中的數(shù)據(jù)中是否有一定數(shù)量(例如50)或更多個數(shù)據(jù)是在高電平的。在這種情況下,390步清除所有的接收緩沖器(1)到(100)。
雖然第一實施例的520步根據(jù)標志XFRERR的狀態(tài)來確定是否連續(xù)地發(fā)生了兩次或更多次的組幀錯誤,另外的一種方案是提供一個計數(shù)器以便對連續(xù)發(fā)生組幀錯誤的次數(shù)進行計數(shù),并只有在計數(shù)值成為某個值或更多時才禁止SIN中斷過程。
在這種情況下,預(yù)定的發(fā)生次數(shù)可以置定為在車輛起動時發(fā)生的組幀錯誤的次數(shù),這樣盡管在車輛起動時會發(fā)生組幀錯誤但SIN中斷仍可以保持有效,從而在SIN中斷的基礎(chǔ)上允許實施固有的數(shù)據(jù)通信。
雖然,在上述的實施例中請求信息和應(yīng)答信息是由多個的1字節(jié)的數(shù)據(jù)形成的,這些數(shù)據(jù)也可由多個2字節(jié)數(shù)據(jù)、或多個4字節(jié)數(shù)據(jù),或者甚至更長字節(jié)數(shù)據(jù)所形成。
雖然上述的實施例是一些包括以故障診斷測試器5作為主動單元并以電子控制器作為從動單元的系統(tǒng),但本發(fā)明也可以用于這樣的系統(tǒng),其中任何一個電子控制器是主動單元而其余的電子控制器則是從動單元。
雖然上述的實施例是用于陸上車輛的通信系統(tǒng),本發(fā)明也可以用于除陸上車輛以外的其它控制對象。
雖然上述的實施例是這樣的通信系統(tǒng),它們在主動單元和多個從動單元之間以1到n的關(guān)系實現(xiàn)數(shù)據(jù)通信,但本發(fā)明也可以用于這樣的系統(tǒng),它們在主動單元和從動單元之間以1到1的關(guān)系實現(xiàn)數(shù)據(jù)通信。
權(quán)利要求
1.一種包括一個主動單元和若干從動單元并通過通信線路進行連接的通信系統(tǒng),該主動單元通過上述通信線路發(fā)出由多個一定的字節(jié)數(shù)據(jù)組成的請求信息以請求執(zhí)行一定的過程,該從動單元在檢測到字節(jié)數(shù)據(jù)的停止位時起動一個中斷過程以接收字節(jié)數(shù)據(jù),或在收到請求信息的全部字節(jié)數(shù)據(jù)時通過上述通信線路發(fā)送由多個一定的字節(jié)數(shù)據(jù)形成的應(yīng)答信息,其中所說的從動單元包括用于檢測組幀錯誤的組幀錯檢測裝置,該錯誤發(fā)生于中斷過程中收到的字節(jié)數(shù)據(jù)的停止位不是正確值的時候;頻繁發(fā)生確定裝置,它確定上述的組幀錯檢測裝置是否檢測到頻繁發(fā)生的組幀錯誤;和中斷過程禁止裝置,它根據(jù)上述頻繁發(fā)生確定裝置所確定的上述組幀錯檢測裝置已檢測到頻繁發(fā)生的組幀錯誤而禁止中斷過程。
2.按照權(quán)利要求1的通信系統(tǒng),其特征在于,其中所說的主動單元通過通信線路送出初始化地址,它的通信速度比發(fā)送/接收請求信息和應(yīng)答信息要慢,它是由一定的字節(jié)數(shù)據(jù)形成的。
3.按照權(quán)利要求2的通信系統(tǒng),其特征在于,其中所說的從動單元包括初始化地址接收裝置,它在上述中斷過程禁止裝置已禁止中斷過程后接收初始地址的位數(shù)據(jù),上述初始化地址接收裝置對初始化地址的全部位數(shù)據(jù)實現(xiàn)接收過程。
4.按照權(quán)利要求3的通信系統(tǒng),其特征在于,其中所說的初始化地址接收裝置以一定的時序?qū)Τ跏嫉刂返?位數(shù)據(jù)進行采樣并根據(jù)采樣值確定該1位數(shù)據(jù)是高電平或低電平。
5.按照權(quán)利要求3的通信系統(tǒng),其特征在于,其中所說的初始化地址接收裝置包括采樣裝置,它按一定的時序?qū)Τ跏嫉刂返?位數(shù)據(jù)進行采樣;采樣次數(shù)確定裝置,它確定采樣次數(shù)是否已達到一定的計數(shù)值;和1位數(shù)據(jù)確定裝置,它響應(yīng)上述采樣次數(shù)確定裝置所確定的采樣次數(shù)已達到計數(shù)值而根據(jù)所采樣的值來確定1位數(shù)據(jù)是高電平或低電平。
6.按照權(quán)利要求3的通信系統(tǒng),其特征在于,還包括中斷過程起動裝置,它在上述初始地址接收裝置完成了對初始地址的全部位數(shù)據(jù)的接收過程時起動中斷過程。
7.按照權(quán)利要求1的通信系統(tǒng),其特征在于,其中所說的頻繁發(fā)生確定裝置包括用于確定上述的組幀錯檢測裝置是否已檢測到一定或更多次數(shù)的連續(xù)的組幀錯的裝置。
8.按照權(quán)利要求1的通信系統(tǒng),其特征在于,其中所說的頻繁發(fā)生確定裝置包括用于確定上述的組幀錯誤檢測裝置已檢測到組幀錯誤的次數(shù)相對于中斷過程被起動的次數(shù)是否達到一定的比例或更多的裝置。
9.按照權(quán)利要求1的通信系統(tǒng),其特征在于,其中所說的頻繁發(fā)生確定裝置包括用于確定上述的組幀錯誤檢測裝置檢測到的組幀錯誤相對于從上述組幀錯誤檢測裝置第一次檢測到組幀錯誤起的時間段內(nèi)組幀錯誤的次數(shù)是否達到一定的比例或更多。
10.按照權(quán)利要求1的通信系統(tǒng),其特征在于,其中所說的從動單元是安裝在陸上車輛中的。
11.一種從動單元,它通過通信線路被連接到主動單元而形成通信系統(tǒng)并在檢測到從上述主動單元通過上述通信線路而送來的一定字節(jié)數(shù)據(jù)的停止位時就進行工作以起動一個中斷過程,從而接收該字節(jié)數(shù)據(jù),上述從動單元包括用于檢測組幀錯誤的組幀錯檢測裝置,該錯誤發(fā)生于在中斷過程中接收的字節(jié)數(shù)據(jù)的停止位是一個不正確的值的時侯;頻繁發(fā)生確定裝置,它確定上述組幀錯檢測裝置是否檢測到頻繁發(fā)生的組幀錯誤;和中斷過程禁止裝置,它響應(yīng)上述頻繁發(fā)生確定裝置所確定的上述組幀錯誤檢測裝置已檢測到頻繁發(fā)生的組幀錯誤而禁止中斷過程。
全文摘要
在從動單元中發(fā)生組幀錯時,出錯原因被分析,并根據(jù)出錯原因而使中斷被禁止或起動,從而可以實現(xiàn)最佳數(shù)據(jù)通信。當發(fā)出中斷請求時,確定該中斷是否由組幀錯誤所引起。在肯定的確定結(jié)果時,確定組幀錯誤是否連續(xù)發(fā)生兩次或更多次。在否定的確定結(jié)果的情況下中斷是不加禁止(即被允許)的,而在肯定的確定結(jié)果時中斷被禁止。
文檔編號H04L12/56GK1136739SQ9610001
公開日1996年11月27日 申請日期1996年2月26日 優(yōu)先權(quán)日1995年2月22日
發(fā)明者小黑浩和, 鷹羽克己 申請人:日本電裝株式會社