專利名稱:開放式單線異步串行通信總線的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在一個(gè)通信系統(tǒng)中的串行數(shù)據(jù)發(fā)送協(xié)議以及其實(shí)現(xiàn)技術(shù),具體地說(shuō)是涉及在一個(gè)家庭網(wǎng)絡(luò)(Home Area Networks)或分布式控制網(wǎng)絡(luò)中,所有的信息家電(Information Appliances)、個(gè)人電腦、控制器和致動(dòng)器可以通過(guò)一根信號(hào)線實(shí)現(xiàn)異步串行通信的一種方法。
背景技術(shù):
描述數(shù)字化和網(wǎng)絡(luò)化使得電器與電器之間,電器與人之間的信息交換正變成現(xiàn)實(shí),分布在一個(gè)家庭中的數(shù)十個(gè)甚至數(shù)百個(gè)CPU以及其它集成電路可以構(gòu)成家庭網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)。現(xiàn)有的家庭網(wǎng)絡(luò)或者個(gè)人網(wǎng)絡(luò)(Personal Area Networks)技術(shù)主要包括無(wú)線技術(shù)(例如藍(lán)牙、HomeRF,以及無(wú)線以太網(wǎng)IEEE 802.11b),利用舊線技術(shù)(例如電話線、電源線)和鋪設(shè)新線技術(shù)(例如IEEE1394、通用串行總線USB2.0和以太網(wǎng)等)。利用電源線上網(wǎng)的標(biāo)準(zhǔn)目前是HomePNA 2.0,對(duì)象主要是家用電器,它的優(yōu)點(diǎn)雖然是不用鋪設(shè)新線,但存在著電源線噪音干擾大以及設(shè)備(HomePNA 2.0調(diào)制解調(diào)器)昂貴的缺點(diǎn)。在鋪設(shè)新線技術(shù)中,IEEE1394和USB2.0是以多媒體數(shù)字產(chǎn)品為主要對(duì)象,基本上以個(gè)人電腦或USB主控制器為中心,連接各種數(shù)字產(chǎn)品,采用主-副(Master-Slave)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),即系統(tǒng)里只能有一個(gè)主裝置,其它是被動(dòng)的副裝置;數(shù)據(jù)傳輸速度高(IEEE1394可達(dá)3.2Gbps,USB2.0可達(dá)480Mbps),因此傳輸電纜不能太長(zhǎng),距離長(zhǎng)的要增加集線器(Hub);以太網(wǎng)是比較成熟的技術(shù),因?yàn)樾盘?hào)需要編碼解碼,硬件要求較高。這些技術(shù)適合那些要求有比較高傳輸波特率的信息家電,但是目前的硬件費(fèi)用都比較高。
還有另外兩種經(jīng)濟(jì)的鋪設(shè)新線技術(shù)應(yīng)用于家庭網(wǎng)絡(luò)和分布式控制網(wǎng)絡(luò)之中一種是荷蘭飛利浦公司利用I2C總線擴(kuò)展成的I2C管道總線(Access Bus),這是一種多線串行通訊總線,至少包括信號(hào)線(SDA)、時(shí)鐘線(SCL)和地線,為防止電容耦合,SDA和SCL線不適合存在同一條雙絞線中。I2C管道總線最初設(shè)計(jì)目的是代替RS-232來(lái)連接電腦周邊設(shè)備;另外一種是美國(guó)專利號(hào)為5210846的美國(guó)達(dá)拉斯半導(dǎo)體公司的單線總線結(jié)構(gòu),達(dá)拉斯公司的單線總線存在著比特率低和網(wǎng)絡(luò)結(jié)構(gòu)單一化的缺點(diǎn),單線總線采用主-副的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),較適合用一個(gè)主裝置來(lái)監(jiān)控多路傳感器(例濕度計(jì)、溫度計(jì)、風(fēng)向儀等)的場(chǎng)合。
發(fā)明摘要本發(fā)明的目的是提供一種經(jīng)濟(jì)實(shí)用,能通過(guò)一根信號(hào)線連接成家庭網(wǎng)絡(luò)或分布式控制網(wǎng)絡(luò),采用對(duì)等(Peer to Peer)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的異步串行通信方法。主要針對(duì)對(duì)象是需要連接到網(wǎng)絡(luò)的各種電器,各種控制器或傳感器,非高速多媒體數(shù)字產(chǎn)品,這些稱為節(jié)點(diǎn),但不適合高速視頻多媒體產(chǎn)品。采用的對(duì)等網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),使每一個(gè)聯(lián)接到家庭網(wǎng)絡(luò)或分布式控制網(wǎng)絡(luò)的節(jié)點(diǎn)都能作為主裝置,即每個(gè)節(jié)點(diǎn)可以主動(dòng)地與另外的節(jié)點(diǎn)交換數(shù)據(jù)。每個(gè)節(jié)點(diǎn)能“一插即用”(Plug and Play),節(jié)點(diǎn)的加入和退出不需要整個(gè)網(wǎng)絡(luò)的從新初始化,因此本發(fā)明是開發(fā)式的局部網(wǎng)絡(luò)技術(shù)。該網(wǎng)絡(luò)系統(tǒng)由兩部分組成節(jié)點(diǎn)和連接節(jié)點(diǎn)間的開放式單線總線。開放式單線總線實(shí)際上由一根信號(hào)線和一根地線組成,可以用帶屏蔽的音響線或視頻線,也可以用電話雙絞線或扁平電纜,但不限于所舉例子;實(shí)現(xiàn)開放式單線協(xié)議的節(jié)點(diǎn)通常具有能完成協(xié)議操作的CPU,或其它集成電路,例如專用集成電路(ASIC),現(xiàn)場(chǎng)可編程門陣列(FPGA),復(fù)雜可編程邏輯器件(CPLD),以及信號(hào)驅(qū)動(dòng)電路。每個(gè)節(jié)點(diǎn)擁有一個(gè)獨(dú)一的標(biāo)識(shí)符(ID),標(biāo)識(shí)符在節(jié)點(diǎn)最初加入網(wǎng)絡(luò)時(shí)取得。
一般地,如果節(jié)點(diǎn)需要電源供應(yīng),還可以在開放式單線總線里增加一根電源線為節(jié)點(diǎn)供電。
圖1描述開放式單線信號(hào)線上存在的基本信號(hào)波形;圖2描述通過(guò)一根信號(hào)線執(zhí)行開放式單線串行通信的模塊示意圖;圖3描述通信命令控制模塊發(fā)送命令流程圖;圖4描述通信命令控制模塊接收命令流程圖;圖5描述在字節(jié)讀寫模塊內(nèi)控制字節(jié)讀寫的狀態(tài)機(jī);圖6描述在信號(hào)收發(fā)信機(jī)內(nèi)控制起始信號(hào)和字節(jié)同步與確認(rèn)信號(hào)的寫,邏輯1,0讀寫的狀態(tài)機(jī);圖7描述在信號(hào)收發(fā)信機(jī)內(nèi)追蹤起始信號(hào)和字節(jié)同步與確認(rèn)信號(hào)的狀態(tài)機(jī);圖8描述節(jié)點(diǎn)信號(hào)輸入和輸出電路;詳細(xì)描述根據(jù)本發(fā)明,開放式單線總線上的信號(hào)線在無(wú)信號(hào)狀態(tài)下總處于高電平,有信號(hào)時(shí),信號(hào)線上存在著四種基本信號(hào)波形起始信號(hào)STR,字節(jié)同步與確認(rèn)信號(hào)ACK,邏輯1,和邏輯0信號(hào),由這四種信號(hào)將組成所有的命令和數(shù)據(jù)信息。參照?qǐng)D1,顯示了開放式單線總線上的四個(gè)基本信號(hào)波形圖。時(shí)鐘10是發(fā)送方節(jié)點(diǎn)通信模塊內(nèi)的協(xié)調(diào)時(shí)鐘,用來(lái)協(xié)調(diào)控制四個(gè)基本信號(hào)的輸出和接收。通常,信號(hào)線上無(wú)信號(hào)輸出時(shí),每一個(gè)通信模塊都把信號(hào)線拉到高電平H,當(dāng)某個(gè)通信模塊寫脈沖‘0’時(shí),則將信號(hào)線拉到低電平L,寫脈沖‘1’時(shí),則讓信號(hào)線保持在高電平。每個(gè)通信模塊要求發(fā)言之前,它都要觀察到信號(hào)線已在高電平上停持了一段預(yù)定的時(shí)間,才能發(fā)出起始信號(hào)STR,這段預(yù)定時(shí)間通常應(yīng)該超過(guò)傳輸一個(gè)字節(jié)的時(shí)間。每個(gè)通信模塊的協(xié)調(diào)時(shí)鐘在通信時(shí)將具有相同的頻率,但是都或多或少的不同步,因此根據(jù)本發(fā)明,每個(gè)通信模塊在傳輸一個(gè)字節(jié)數(shù)據(jù)之前都要求發(fā)出一個(gè)字節(jié)同步與確認(rèn)信號(hào)ACK,以便接收方節(jié)點(diǎn)在觀察到ACK波形結(jié)束后的第二個(gè)協(xié)調(diào)時(shí)鐘周期開始讀一個(gè)字節(jié)的數(shù)據(jù),因此在傳輸一個(gè)字節(jié)數(shù)據(jù)之前的單線總線不總處于高電平。信號(hào)ACK同時(shí)還作為接收方確認(rèn)信號(hào),例如,根據(jù)本發(fā)明,在開放式單線上的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)交換中,要求接收方在收到一個(gè)字節(jié)數(shù)據(jù)后回應(yīng)一個(gè)信號(hào)ACK,表示已收到對(duì)方的數(shù)據(jù)。
在本發(fā)明的優(yōu)選實(shí)施例中,信號(hào)STR是五個(gè)位為“00110”的脈沖序列(時(shí)序20),信號(hào)ACK是四個(gè)位為“0100”的脈沖序列(時(shí)序30),邏輯1是三個(gè)位為“111”的脈沖序列(時(shí)序40),而邏輯0是三個(gè)位為“000”的脈沖序列(時(shí)序50)。信號(hào)STR與無(wú)信號(hào)狀態(tài)下的5個(gè)協(xié)調(diào)時(shí)鐘周期的高電平序列(即“11111”),和ACK信號(hào)與無(wú)信號(hào)狀態(tài)下的4個(gè)協(xié)調(diào)時(shí)鐘周期的高電平序列(即“1111”)的漢明距離(Hamming Distance)d均為3(有3個(gè)位不一致),令t是可以糾正的錯(cuò)誤位數(shù),編碼學(xué)里一般地認(rèn)為d 2t+1,所以t=1,即信號(hào)STR和信號(hào)ACK上任一位出現(xiàn)錯(cuò)誤,它們都能與全高電平區(qū)分開來(lái),因而仍然能被辨認(rèn)出來(lái)。同樣地,邏輯1與邏輯0的漢明距離為3,它們即使有一位出現(xiàn)錯(cuò)誤,都能與對(duì)方區(qū)分開來(lái)。邏輯1與邏輯0是重復(fù)碼(Repetition Code),有比較好的位糾錯(cuò)能力,雖然存在著降低傳輸比特率的缺點(diǎn)。
時(shí)鐘60是接收方節(jié)點(diǎn)通信模塊內(nèi)的協(xié)調(diào)時(shí)鐘。時(shí)鐘10和時(shí)鐘60分處在不同的硅芯片上,因此都或多或少的不同步。時(shí)鐘60是接收方節(jié)點(diǎn)用來(lái)協(xié)調(diào)讀取信號(hào)的時(shí)鐘,當(dāng)該節(jié)點(diǎn)在下次寫信號(hào)時(shí),時(shí)鐘60就是該節(jié)點(diǎn)的時(shí)鐘10,因此應(yīng)當(dāng)清楚,一個(gè)節(jié)點(diǎn)的通信模塊只有一個(gè)協(xié)調(diào)時(shí)鐘。由于時(shí)鐘10和時(shí)鐘60都不需要在開放式單線上傳播,因此可以減少電磁輻射。
參照?qǐng)D2,顯示了根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,通過(guò)一根信號(hào)線執(zhí)行開放式單線通信的模塊示意圖。開放式單線實(shí)際上由兩根線組成,一根是地線70,一根是信號(hào)線80,地線提供參考低電平。開放式單線通信模塊90主要由信號(hào)收發(fā)信機(jī)模塊100、字節(jié)讀寫模塊110、通信命令控制模塊120、一個(gè)8位移位寄存器,以及一個(gè)ID位存儲(chǔ)器等組成。信號(hào)收發(fā)信機(jī)負(fù)責(zé)對(duì)基本信號(hào)的讀寫控制,是開放式單線通信模塊中的最低層,可以是信息家電中使用的專用集成電路(ASIC)或可編程邏輯器件(FPGA,CPLD等)的一個(gè)信號(hào)收發(fā)信機(jī)模塊,也可以是信息家電中使用的微處理器(CPU)的一個(gè)具有數(shù)據(jù)輸入輸出的控制塊,例如通用異步收發(fā)信機(jī)(UART)。字節(jié)讀寫模塊是開放式單線通信模塊中的中間層,接收來(lái)自通信命令控制模塊的控制命令,負(fù)責(zé)對(duì)字節(jié)讀寫的控制,對(duì)信號(hào)收發(fā)信機(jī)發(fā)送四種基本信號(hào)的讀寫命令。移位寄存器連接在信號(hào)收發(fā)信機(jī)和字節(jié)讀寫模塊之間,實(shí)現(xiàn)了并行與串行信號(hào)的雙向轉(zhuǎn)換,當(dāng)字節(jié)讀寫模塊讀字節(jié)時(shí),信號(hào)收發(fā)信機(jī)將讀取到的一位邏輯信息暫存于移位寄存器的最低位(第1位),移位寄存器隨后左移一位,字節(jié)讀寫模塊則從移位寄存器上讀取字節(jié);而當(dāng)字節(jié)讀寫模塊寫字節(jié)時(shí),它先把字節(jié)數(shù)據(jù)寫入移位寄存器,信號(hào)收發(fā)信機(jī)讀取移位寄存器最高位(第8位),移位寄存器隨后左移一位。通信命令控制模塊,是開放式單線通信模塊中的最高層,負(fù)責(zé)對(duì)通信命令的接收和發(fā)送,對(duì)字節(jié)讀寫模塊發(fā)送字節(jié)讀寫命令或信號(hào)ACK,信號(hào)STR的寫命令。ID位存儲(chǔ)器用來(lái)儲(chǔ)存節(jié)點(diǎn)在線記錄,當(dāng)節(jié)點(diǎn)收到某標(biāo)識(shí)符對(duì)應(yīng)節(jié)點(diǎn)的確認(rèn)信號(hào)后,節(jié)點(diǎn)的ID位存儲(chǔ)器的相應(yīng)位將記為‘1’,否則記為‘0’,而節(jié)點(diǎn)在需要時(shí)可以從ID位存儲(chǔ)器上查找記錄。
在通信命令控制模塊中,通信命令通常包括四種基本命令新節(jié)點(diǎn)加入命令、數(shù)據(jù)廣播命令、點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送命令和標(biāo)識(shí)符查詢命令;節(jié)點(diǎn)(包括加入新節(jié)點(diǎn))必須等信號(hào)線保持在高電平一段預(yù)定時(shí)間后才能發(fā)送通信命令,在發(fā)送通信命令之前必須先發(fā)送出一個(gè)起始信號(hào)STR;命令由一個(gè)字節(jié)表示,因此可以有256個(gè)不同的命令,不過(guò)在本發(fā)明的優(yōu)選實(shí)施例中只用了四種基本命令;跟在命令后面的是該節(jié)點(diǎn)的標(biāo)識(shí)符(新節(jié)點(diǎn)除外),每個(gè)標(biāo)識(shí)符ID可以由一個(gè)字節(jié)構(gòu)成,ID被用于尋址和識(shí)別,因此存在著256個(gè)不同的節(jié)點(diǎn)地址,但本發(fā)明不限于此,在信號(hào)驅(qū)動(dòng)能力足夠大的許可下,可以擴(kuò)展標(biāo)識(shí)符的位數(shù),從而擴(kuò)充開放式單線總線上節(jié)點(diǎn)的數(shù)量;每個(gè)節(jié)點(diǎn)在發(fā)送一個(gè)字節(jié)ID或者數(shù)據(jù)之前,都必須先發(fā)送一個(gè)字節(jié)同步與確認(rèn)信號(hào)波形,而接受方節(jié)點(diǎn)在觀察到一個(gè)字節(jié)同步與確認(rèn)信號(hào)波形后的第二個(gè)協(xié)調(diào)時(shí)鐘周期開始讀這個(gè)字節(jié)的數(shù)據(jù)。
圖3顯示了發(fā)送方節(jié)點(diǎn)的通信命令控制模塊發(fā)送通信命令的流程圖。在開始后的步驟2,節(jié)點(diǎn)被要求預(yù)先觀察到單線信號(hào)線已處在高電平上有一段預(yù)定的時(shí)間T1,例如等于24個(gè)協(xié)調(diào)時(shí)鐘的寬度(寫一個(gè)字節(jié)的時(shí)鐘寬度),如果有通信命令要執(zhí)行,在步驟4發(fā)送一個(gè)STR起始信號(hào),在步驟5發(fā)送相應(yīng)的通信命令字節(jié)。根據(jù)不同的通信命令進(jìn)入不同的流程分支。
如果是新節(jié)點(diǎn)加入網(wǎng)絡(luò)命令,在步驟7發(fā)送ID查詢數(shù)目n,在步驟8設(shè)起始發(fā)送標(biāo)識(shí)符ID為“00000001”,在本發(fā)明優(yōu)選實(shí)施例中,ID被定義為一個(gè)字節(jié)字長(zhǎng);發(fā)送字節(jié)完畢后,總線自動(dòng)回復(fù)到高電平。在步驟10,如果總線在一段預(yù)定時(shí)間T2內(nèi)有信號(hào)ACK確認(rèn),則把一個(gè)n位的ID位存儲(chǔ)器相應(yīng)位記錄為‘1’,表示此ID的節(jié)點(diǎn)已在線上,無(wú)信號(hào)ACK確認(rèn),則把此ID作為自己的ID;在步驟15,ID遞增1,一直到達(dá)ID最大數(shù)目才退出,這樣做可使新節(jié)點(diǎn)查遍所有的標(biāo)識(shí)符ID,因此可知道什么ID號(hào)碼的節(jié)點(diǎn)已在線上,什么ID號(hào)碼沒有節(jié)點(diǎn),什么節(jié)點(diǎn)已經(jīng)斷電或者離開信號(hào)線,任何斷電或者離開信號(hào)線的節(jié)點(diǎn)在下次再加入時(shí),要求從新執(zhí)行加入網(wǎng)絡(luò)命令。
如果是廣播數(shù)據(jù)命令,則在步驟17發(fā)送自己的ID,在步驟18發(fā)送數(shù)據(jù)字節(jié)數(shù)目,在本發(fā)明的優(yōu)選實(shí)施例中,字節(jié)總數(shù)不應(yīng)超過(guò)256個(gè),因此節(jié)點(diǎn)在一次通信命令內(nèi)只能在單線信號(hào)線上廣播小于等于256個(gè)字節(jié)的數(shù)據(jù)組,這樣可以防止太長(zhǎng)的一串?dāng)?shù)據(jù)掉失,也可以防止某一個(gè)節(jié)點(diǎn)占據(jù)信號(hào)線太長(zhǎng)的時(shí)間。通信命令控制模塊從數(shù)據(jù)儲(chǔ)存器中讀取發(fā)送數(shù)據(jù),重復(fù)步驟19,20直到數(shù)據(jù)傳送完畢為止。優(yōu)選地,數(shù)據(jù)組以一個(gè)數(shù)據(jù)頭開始,數(shù)據(jù)頭通常包括操作命令、詢問命令、開始或結(jié)束使用非基本傳輸比特率命令,廣播的數(shù)據(jù)頭命令還可以包括要求各節(jié)點(diǎn)重新啟動(dòng),或某一節(jié)點(diǎn)在離開前,通知各個(gè)節(jié)點(diǎn)等。跟在數(shù)據(jù)頭后面的數(shù)據(jù)包括測(cè)量值、控制值、控制參數(shù),或者其它顯示信息等。數(shù)據(jù)頭可以由一個(gè)以上的字節(jié)組成,本發(fā)明建議將數(shù)據(jù)組的處理放在建立在開放式單線通信模塊之上的高級(jí)模塊里執(zhí)行。
如果是點(diǎn)對(duì)點(diǎn)發(fā)送數(shù)據(jù)命令,一般地,節(jié)點(diǎn)往往要先檢查自己的ID位存儲(chǔ)器,以確定接收方在線的情況下才發(fā)出此命令。在步驟22,發(fā)送接收方的ID,在收到信號(hào)ACK回應(yīng)以確信該ID的節(jié)點(diǎn)在線情況下,流程繼續(xù)進(jìn)入步驟25發(fā)送自己的ID,然后節(jié)點(diǎn)通信模塊要在一段預(yù)定時(shí)間內(nèi)T2(例如等于6個(gè)基本時(shí)鐘寬度)收到字節(jié)同步與確認(rèn)信號(hào)ACK。根據(jù)本發(fā)明,在點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)發(fā)送后,接收方要求發(fā)出一個(gè)字節(jié)同步與確認(rèn)信號(hào)ACK,由于接收方節(jié)點(diǎn)要在T2時(shí)間內(nèi)發(fā)送字節(jié)同步與確認(rèn)信號(hào),而發(fā)送方要在時(shí)間T2后才發(fā)第二個(gè)字節(jié)的字節(jié)同步與確認(rèn)信號(hào),因此雙方節(jié)點(diǎn)將不會(huì)混淆這兩個(gè)信號(hào)ACK的含義。在步驟28發(fā)送數(shù)據(jù)字節(jié)數(shù)目,同樣優(yōu)選地,字節(jié)數(shù)不超過(guò)256個(gè)。重復(fù)步驟31至34直到數(shù)據(jù)發(fā)送完畢。在點(diǎn)對(duì)點(diǎn)發(fā)送數(shù)據(jù)命令過(guò)程中,如果在任一次的預(yù)定時(shí)間T2內(nèi)收不到信號(hào)ACK,該命令在步驟35作失敗處理,并返回到開始狀態(tài)。但是本發(fā)明不限于此,在無(wú)信號(hào)ACK確認(rèn)情況下,節(jié)點(diǎn)通信模塊可以重復(fù)發(fā)送幾次才退出,在重復(fù)的數(shù)據(jù)之前則用連續(xù)2個(gè)信號(hào)ACK作字節(jié)同步信號(hào)以加區(qū)別,防止接收方已回復(fù)確認(rèn)信號(hào),但因噪音在信號(hào)線上丟失,因而避免重復(fù)讀取數(shù)據(jù)。
點(diǎn)對(duì)點(diǎn)發(fā)送的數(shù)據(jù)頭可以是具體的命令,例如一個(gè)作為節(jié)點(diǎn)的中央控制器可以給在家庭網(wǎng)絡(luò)的另一地方的家用電器(例如加熱器、空調(diào)器等)發(fā)送啟動(dòng)信號(hào);或者一臺(tái)空調(diào)器給房間另一頭的傳感器發(fā)送要求回復(fù)溫度值、濕度值的命令,回復(fù)數(shù)據(jù)將作為空調(diào)器下一步操作的參考。
如果是節(jié)點(diǎn)ID查詢命令,則進(jìn)入步驟37,當(dāng)ID發(fā)出后,如果有信號(hào)ACK回應(yīng),則把ID位存儲(chǔ)器上相應(yīng)的位記為‘1’,否則記為‘0’。如果需要,這個(gè)命令可以在點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送之前使用。
圖4顯示了接收方節(jié)點(diǎn)通信命令控制模塊接收通信命令的流程圖。在開始后的步驟44,節(jié)點(diǎn)觀察到信號(hào)線上的信號(hào)STR,該信號(hào)表示網(wǎng)絡(luò)上某個(gè)節(jié)點(diǎn)要求發(fā)言。如果收到信號(hào)ACK,在步驟45接收到發(fā)送方通信命令,通信命令控制模塊將根據(jù)各通信命令進(jìn)入不同的流程分支。
如果接收到的通信命令是新節(jié)點(diǎn)加入網(wǎng)絡(luò)命令,則先在步驟47收到ID查詢數(shù)目,在步驟48讀取查詢的ID,如果是自己的ID,則在步驟50發(fā)出確認(rèn)信號(hào)ACK,表示自己在開發(fā)式單線總線上,如果不是自己的ID,則轉(zhuǎn)到步驟51等待其它節(jié)點(diǎn)的確認(rèn)信號(hào),如果在時(shí)間T2內(nèi)有信號(hào)ACK回應(yīng),則把ID位存儲(chǔ)器上相應(yīng)的位記為‘1’,表示此ID值有對(duì)應(yīng)的節(jié)點(diǎn)在總線上。如果無(wú)信號(hào)ACK回應(yīng)則把相對(duì)應(yīng)位記為‘0’。重復(fù)步驟48~52,直到所有ID被查詢完畢。
如果接收到的通信命令是數(shù)據(jù)廣播命令,則在步驟56把接收到的數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器。
如果接收到的通信命令是點(diǎn)對(duì)點(diǎn)數(shù)據(jù)發(fā)送命令,則進(jìn)入步驟59,如果接收到的ID是自己的ID,則繼續(xù)在步驟62接收對(duì)方的ID,在步驟66接收數(shù)據(jù),等接收到數(shù)據(jù)后,每讀到一個(gè)字節(jié)的內(nèi)容要在信號(hào)線上發(fā)出確認(rèn)信號(hào)ACK,表示已收到該數(shù)據(jù)。如果接收到的ID不是自己的ID,則退出到開始狀態(tài)。
如果接收到的命令是ID查詢命令,節(jié)點(diǎn)在收到ID后判斷是否自己的ID號(hào)碼,如果是,則發(fā)出確認(rèn)信號(hào)ACK。
在圖4顯示通信命令控制模塊的接收命令流程中,如果接收方節(jié)點(diǎn)在一段預(yù)定時(shí)間T2內(nèi)未收到字節(jié)同步與確認(rèn)信號(hào)ACK,則作命令中斷處理,然后退回到開始狀態(tài)。
根據(jù)本發(fā)明,通信命令控制模塊在流程中將通過(guò)對(duì)字節(jié)讀寫模塊發(fā)送字節(jié)讀寫和信號(hào)ACK、信號(hào)STR的寫命令來(lái)實(shí)現(xiàn)通信命令的發(fā)送和接收。根據(jù)本發(fā)明,數(shù)據(jù)以字節(jié)為傳輸單位,因此在字節(jié)讀寫模塊內(nèi)將優(yōu)選地建立一個(gè)狀態(tài)機(jī)來(lái)控制字節(jié)的讀寫,同時(shí)該狀態(tài)機(jī)還負(fù)責(zé)對(duì)信號(hào)收發(fā)信機(jī)發(fā)送信號(hào)ACK和信號(hào)STR的寫控制。該狀態(tài)機(jī)由至少比傳輸比特率快三倍的基本時(shí)鐘來(lái)協(xié)調(diào),同時(shí)要求兩個(gè)通信的節(jié)點(diǎn)使用相同的協(xié)調(diào)時(shí)鐘頻率。圖5顯示了該狀態(tài)機(jī),該狀態(tài)機(jī)的下一個(gè)狀態(tài)將由當(dāng)前狀態(tài)的操作、來(lái)自通信命令控制模塊的控制命令,和來(lái)自信號(hào)收發(fā)信機(jī)的輸入信號(hào)來(lái)決定。該狀態(tài)機(jī)在每一個(gè)狀態(tài)周期期間檢查它的命令與信號(hào)輸入事件,在下一個(gè)協(xié)調(diào)時(shí)鐘上升沿時(shí)改變成下一狀態(tài)。下表中列出改變狀態(tài)的條件描述
下表列出該狀態(tài)機(jī)的7種可能狀態(tài)描述
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在信號(hào)收發(fā)信機(jī)內(nèi)將建立一個(gè)狀態(tài)機(jī)來(lái)控制起始信號(hào)STR,字節(jié)同步與確認(rèn)信號(hào)ACK的寫和邏輯1,0的讀寫。該狀態(tài)機(jī)與字節(jié)讀寫模塊內(nèi)狀態(tài)機(jī)使用相同的協(xié)調(diào)時(shí)鐘來(lái)協(xié)調(diào)。圖6顯示了該狀態(tài)機(jī),狀態(tài)機(jī)的下一個(gè)狀態(tài)由當(dāng)前狀態(tài)和來(lái)自字節(jié)讀寫模塊的控制命令來(lái)決定。該狀態(tài)機(jī)在每一個(gè)狀態(tài)周期期間檢查它的控制命令輸入,在下一個(gè)協(xié)調(diào)時(shí)鐘上升沿來(lái)臨時(shí)改變成下一狀態(tài)。下表中列出來(lái)自字節(jié)讀寫模塊的控制命令的描述
該狀態(tài)機(jī)的16種可能狀態(tài)描述
如果信號(hào)收發(fā)信機(jī)在某個(gè)協(xié)調(diào)時(shí)鐘周期內(nèi)對(duì)信號(hào)線上寫脈沖‘1’,則保持高電平,如果對(duì)信號(hào)線上寫脈沖‘0’,則拉低電平。
如圖6所示,狀態(tài)機(jī)在idle狀態(tài)或者在命令操作的最后狀態(tài)下才接收新的操作命令。在狀態(tài)st1后,狀態(tài)機(jī)連續(xù)執(zhí)行到st5完成一個(gè)寫信號(hào)STR的命令,在st5狀態(tài),如果收到AC命令,則進(jìn)入ack1狀態(tài)。同樣道理,在進(jìn)入rd1和wr1狀態(tài)后,都是連續(xù)執(zhí)行一個(gè)完整的邏輯讀或?qū)懨詈蟛沤邮芷渌睢OP表示不需要什么操作的命令。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在信號(hào)收發(fā)信機(jī)內(nèi)建立另外一個(gè)狀態(tài)機(jī)來(lái)追蹤信號(hào)STR和信號(hào)ACK的發(fā)生。圖7顯示了該狀態(tài)機(jī),該狀態(tài)機(jī)的下一個(gè)狀態(tài)由當(dāng)前狀態(tài)以及當(dāng)前狀態(tài)下的事件來(lái)決定。同樣地,該狀態(tài)機(jī)在每一個(gè)狀態(tài)周期期間檢查發(fā)生的事件,在下一個(gè)協(xié)調(diào)時(shí)鐘上升沿時(shí)改變成下一狀態(tài)。下表列出各事件的描述
狀態(tài)機(jī)的14種可能狀態(tài)描述
如圖7所示,在idle狀態(tài)下,當(dāng)信號(hào)線發(fā)生由高電平轉(zhuǎn)為低電平的事件HL,表示一個(gè)信號(hào)ACK或者信號(hào)STR的可能出現(xiàn),因此下一狀態(tài)轉(zhuǎn)為n1狀態(tài)。該狀態(tài)機(jī)在每一個(gè)狀態(tài)周期期間檢查信號(hào)線的邏輯電平,通過(guò)觀測(cè)到正確的脈沖序列而讀取來(lái)自信號(hào)線上的信號(hào)STR或信號(hào)ACK。但是本發(fā)明不限于此,該狀態(tài)機(jī)還可以修改成能辨認(rèn)發(fā)生一位脈沖錯(cuò)誤的STR或ACK信號(hào),如前面所述,根據(jù)本發(fā)明,信號(hào)STR序列與無(wú)信號(hào)狀態(tài)下的5個(gè)協(xié)調(diào)時(shí)鐘周期的高電平序列(即“11111”),和ACK信號(hào)序列與無(wú)信號(hào)狀態(tài)下的4個(gè)協(xié)調(diào)時(shí)鐘周期的高電平序列(即“1111”)的漢明距離d均為3,因此STR和信號(hào)ACK序列上任一位接收到錯(cuò)誤電平,都能被分辨出來(lái),例如,“01110”與“00110”的漢明距離比“01110”與“11111”的漢明距離更近,因此“01110”被辨認(rèn)是信號(hào)STR而非無(wú)信號(hào)的高電平。
圖8顯示了實(shí)現(xiàn)開放式單線通信的節(jié)點(diǎn)信號(hào)輸入輸出電路的優(yōu)選實(shí)施例。有兩個(gè)分開的節(jié)點(diǎn)130和140在該系統(tǒng)中顯示出來(lái)。當(dāng)所有節(jié)點(diǎn)沒有輸出時(shí),表明單線信號(hào)線處于高電平狀態(tài),因此,每個(gè)節(jié)點(diǎn)的信號(hào)輸出端可以通過(guò)一個(gè)上拉電阻(圖中Ra、Rb)連接一個(gè)CMOS/TTL電源電壓(例如5v),將信號(hào)線電平拉到高電平。因?yàn)楣?jié)點(diǎn)信號(hào)收發(fā)信機(jī)的輸出不能影響輸入Rx,因此節(jié)點(diǎn)的輸出電路有一個(gè)三態(tài)非門,信號(hào)收發(fā)信機(jī)的反向輸出連接三態(tài)非門的控制端,當(dāng)信號(hào)收發(fā)信機(jī)正在接收信號(hào)輸入時(shí),其輸出Tx轉(zhuǎn)為高電平,三態(tài)非門的輸出將變?yōu)楦咦锠顟B(tài),通過(guò)三態(tài)非門的高阻狀態(tài)來(lái)阻斷該節(jié)點(diǎn)輸出對(duì)輸入的影響。
比較長(zhǎng)的信號(hào)線以及線上的節(jié)點(diǎn)存在著對(duì)地電容,其中較長(zhǎng)信號(hào)線電容Cs比節(jié)點(diǎn)對(duì)地電容(圖中C1、C2)要大,但是如果節(jié)點(diǎn)數(shù)目很多,則總的節(jié)點(diǎn)電容將增大。當(dāng)節(jié)點(diǎn)輸出端寫邏輯0而拉低信號(hào)線電平時(shí),這個(gè)過(guò)程可看作是所有電容的放電過(guò)程,此時(shí)三態(tài)非門的輸出要盡可能快地吸納電容負(fù)荷的電流和下拉電流;而當(dāng)節(jié)點(diǎn)輸出端寫邏輯1時(shí),單線電平將被拉高,這個(gè)過(guò)程可看作是電容的充電過(guò)程,令R為并聯(lián)上拉電阻,C為電容之和(所有導(dǎo)線電容與節(jié)點(diǎn)對(duì)地電容之和),則時(shí)間常數(shù)RC制約著電平的轉(zhuǎn)換速率(slew rate),即RC時(shí)間必須小于電平轉(zhuǎn)換時(shí)間,因此R或C都不能太大。
綜上所述,影響開放式單線總線傳輸比特率的因素主要包括總線所選擇的電纜、電纜的長(zhǎng)度、總線上所掛節(jié)點(diǎn)的數(shù)目,和節(jié)點(diǎn)信號(hào)輸出電路中三態(tài)非門的吸納電流(Iol)或下降電流(Sinking Current)。如果電纜很長(zhǎng),節(jié)點(diǎn)數(shù)目很多,則要犧牲傳輸比特率。
電纜的選擇很重要,本發(fā)明建議在普通情況下(總線長(zhǎng)小于50m)可以選擇非屏蔽電話雙絞線(Category 3),較長(zhǎng)情況下選用等級(jí)5雙絞線(Category 5),或者平行扁平電纜,信號(hào)線更長(zhǎng)情況下優(yōu)選IEEE1394(Fire Wire)電纜。一般地,電話雙絞線電容約為65pF/m,平行扁平電纜為50pF/m。例如,當(dāng)輸出電路使用兩個(gè)三態(tài)非門(Iol=40mA)時(shí),設(shè)下拉電流為20mA,則總的并聯(lián)電阻應(yīng)該為R=5V/20 mA=250 ohms,假設(shè)總線上有n個(gè)上拉電阻,則每個(gè)上拉電阻的阻值Ri=R/n=250/n ohms。假設(shè)傳輸比特率為100Kbps,轉(zhuǎn)換時(shí)間為1微秒(μs),則單線總線可帶電容負(fù)荷不應(yīng)大于4000pF,使用非屏蔽雙絞線Cate3,可傳輸至約60米長(zhǎng)距離。因?yàn)楸景l(fā)明的開放式單線總線沒有象I2C總線那樣需要傳輸同步時(shí)鐘,因此沒有象I2C兩條電纜(SLC,SDA)之間那樣存在著電磁相互干涉的現(xiàn)象(特別是高速比特率時(shí)),開放式單線信號(hào)因此可以傳播更長(zhǎng)的距離。
連接節(jié)點(diǎn)輸入端Rx和輸出端Tx的可以是微處理器上面的通用串行收發(fā)信機(jī)(UART)的兩個(gè)端號(hào)Rx,Tx,如果開放式單線通信模塊是FPGA或CPLD的一塊功能模塊,則Rx,Tx可以是邏輯器件上面的兩個(gè)輸入和輸出端口。本領(lǐng)域的技術(shù)人員還可以通過(guò)電平轉(zhuǎn)換,利用RS-232的串行信號(hào)輸出輸入端口進(jìn)行開放式單線通信。
根據(jù)本發(fā)明,各節(jié)點(diǎn)加入開放式單線網(wǎng)絡(luò)是自由的,因此存在著一個(gè)問題隨著節(jié)點(diǎn)數(shù)目的增加,并聯(lián)上拉電阻會(huì)隨著并聯(lián)電阻數(shù)目的增加而減少,因而電纜電容放電時(shí)間會(huì)延長(zhǎng),單線由高電平拉至低電平的時(shí)間會(huì)加長(zhǎng),而電容充電時(shí)間卻會(huì)縮短。因此本發(fā)明建議,不是每一個(gè)節(jié)點(diǎn)都需要帶上拉電阻,特別是相隔較近的節(jié)點(diǎn)可以共用一個(gè)上拉電阻;而在電纜線較長(zhǎng),節(jié)點(diǎn)數(shù)目較多,傳輸比特率大于100Kbps情況下,節(jié)點(diǎn)應(yīng)該并聯(lián)多個(gè)或者使用有較大吸納電流(Iol)的三態(tài)非門。根據(jù)本發(fā)明的一個(gè)實(shí)施例,選用美國(guó)國(guó)家半導(dǎo)體公司的DM74LS125A芯片,該芯片含四個(gè)三態(tài)非門,每個(gè)Iol電流最大達(dá)24mA。
考慮到各個(gè)節(jié)點(diǎn)需要使用相同的協(xié)調(diào)時(shí)鐘頻率才能通信,因此本發(fā)明優(yōu)選地規(guī)定了一個(gè)基本的50KHz的協(xié)調(diào)時(shí)鐘頻率,節(jié)點(diǎn)需要與所有節(jié)點(diǎn)通信時(shí)要求將使用這個(gè)基本的協(xié)調(diào)時(shí)鐘頻率來(lái)控制發(fā)送通信命令,例如加入網(wǎng)絡(luò)命令、廣播數(shù)據(jù)命令和ID查詢命令,而每個(gè)節(jié)點(diǎn)在空閑狀態(tài)下要求使用50KHz的協(xié)調(diào)時(shí)鐘頻率來(lái)追蹤發(fā)言起始信號(hào)STR。許多節(jié)點(diǎn)還需要其它的傳輸比特率,因此它們可以在50KHz的協(xié)調(diào)時(shí)鐘頻率時(shí)使用點(diǎn)對(duì)點(diǎn)通信命令協(xié)議雙方下一次的通信頻率。例如,某節(jié)點(diǎn)可以利用點(diǎn)對(duì)點(diǎn)通信命令給另外一個(gè)節(jié)點(diǎn)發(fā)送3個(gè)字節(jié)的數(shù)據(jù)組,數(shù)據(jù)組以一個(gè)數(shù)據(jù)頭開始,第一個(gè)字節(jié)的數(shù)據(jù)頭被定義為新協(xié)調(diào)時(shí)鐘頻率的開始命令,第二、第三個(gè)字節(jié)數(shù)據(jù)被定義為以1KHz為單位的協(xié)調(diào)時(shí)鐘頻率數(shù),在這個(gè)通信命令結(jié)束后,雙方節(jié)點(diǎn)將使用新的通信協(xié)調(diào)時(shí)鐘頻率通話,當(dāng)通信結(jié)束后,節(jié)點(diǎn)再用點(diǎn)對(duì)點(diǎn)通信命令給對(duì)方節(jié)點(diǎn)發(fā)送數(shù)據(jù),第一個(gè)字節(jié)數(shù)據(jù)頭是結(jié)束目前通信協(xié)調(diào)時(shí)鐘頻率的命令。
如前面所述,如果使用較高的傳輸比特率,要求接收和發(fā)送方節(jié)點(diǎn)必須具有較大的下拉電平吸納電流。本發(fā)明建議只用50KHz協(xié)調(diào)時(shí)鐘或比特率小于16Kbps的節(jié)點(diǎn)使用一個(gè)三態(tài)非門(Iol=20mA)連接信號(hào)線,而比特率高于100Kbps的節(jié)點(diǎn)要使用更大吸納電流的輸出電路。本發(fā)明不限制具體的輸出電路設(shè)計(jì)。
應(yīng)當(dāng)理解,開放式單線協(xié)議除了可以應(yīng)用到家庭網(wǎng)絡(luò)外,還可以應(yīng)用到分布式控制網(wǎng)絡(luò)系統(tǒng)中,例如中央空調(diào)的分布式控制,各房間控制器可以通過(guò)開放式單線與中央控制器聯(lián)系,既可避免星型網(wǎng)絡(luò)分布所帶來(lái)的復(fù)雜控制線路,又可以在一定范圍內(nèi)輕易地加入新的控制節(jié)點(diǎn)而不需要更改全部控制線路。還可以應(yīng)用到果菜園的農(nóng)業(yè)監(jiān)控系統(tǒng)中,只需一根信號(hào)線、一根地線和一根電源線,可以最低限度地減少線路分布,而且圖像信號(hào)和溫、濕度測(cè)量數(shù)值信號(hào)可以通過(guò)不同的比特率傳輸。
與美國(guó)達(dá)拉斯半導(dǎo)體公司的一線協(xié)議相比,開放式單線協(xié)議使用中繼器(Repeater)就可以擴(kuò)展網(wǎng)絡(luò)電纜到更長(zhǎng)的距離;也因?yàn)殚_放式單線使用對(duì)等(Peer to Peer)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),每個(gè)節(jié)點(diǎn)均作為主裝置,相比一線協(xié)議的一個(gè)主裝置可以使網(wǎng)絡(luò)有更多的用途;開放式單線上的不同節(jié)點(diǎn)在50KHz的基本時(shí)鐘頻率基礎(chǔ)上,可以靈活地協(xié)議使用更高的傳輸比特率,而一線協(xié)議只有一種傳輸比特率。與荷蘭飛利浦公司的I2C管道總線相比,開放式單線只有一根信號(hào)線,消除了信號(hào)線與時(shí)鐘線之間的電磁干涉現(xiàn)象,還可以減少電纜的分布量,另外,I2C總線也只限定了兩種傳輸比特率100Kbps及400Kbps,因而開放式單線協(xié)議可以應(yīng)用到更廣泛的場(chǎng)合。
本領(lǐng)域的技術(shù)人員可以在不脫離本發(fā)明的原理和精神基礎(chǔ)上作許多修改,而本發(fā)明說(shuō)明書中所公開的例子是示范性和非限制性的,本發(fā)明的范圍由所附權(quán)利要求書來(lái)限定。
權(quán)利要求
1.一種應(yīng)用于家庭網(wǎng)絡(luò)和分布式控制網(wǎng)絡(luò)的異步串行通信方法,其特征包括節(jié)點(diǎn)通過(guò)一根信號(hào)線實(shí)現(xiàn)開放式單線通信,所有節(jié)點(diǎn)都能主動(dòng)地向其它節(jié)點(diǎn)傳送數(shù)據(jù),任何節(jié)點(diǎn)的加入和退出網(wǎng)絡(luò)不需要整個(gè)網(wǎng)絡(luò)的從新初始化。
2.如權(quán)利要求1所述的節(jié)點(diǎn),其特征是所有節(jié)點(diǎn)都有一個(gè)獨(dú)一的標(biāo)識(shí)符,該標(biāo)識(shí)符在節(jié)點(diǎn)最初加入開放式單線網(wǎng)絡(luò)時(shí)取得,標(biāo)識(shí)符被用于尋址和識(shí)別。
3.如權(quán)利要求1所述的信號(hào)線,其特征是在無(wú)信號(hào)狀態(tài)下,信號(hào)線總處于高電平,在有信號(hào)狀態(tài)下,信號(hào)線上存在著四種基本的脈沖信號(hào)波形起始信號(hào)STR、字節(jié)同步與確認(rèn)信號(hào)ACK、邏輯1信號(hào)和邏輯0信號(hào)。
4.如權(quán)利要求1所述的開放式單線通信,其特征是實(shí)現(xiàn)該通信方法的開放式單線通信模塊主要由最高層的通信命令控制模塊、中間層的字節(jié)讀寫模塊、最低層的信號(hào)收發(fā)信機(jī)模塊、一個(gè)連接在信號(hào)收發(fā)信機(jī)和字節(jié)讀寫模塊之間的8位移位寄存器,以及一個(gè)ID位存儲(chǔ)器組成。
5.如權(quán)利要求4所述的通信命令控制模塊,其特征是所控制的通信命令包括新節(jié)點(diǎn)加入命令、數(shù)據(jù)廣播命令、點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送命令和標(biāo)識(shí)符查詢命令;在發(fā)送通信命令之前,通信命令控制模塊必須先發(fā)送一個(gè)起始信號(hào)STR。
6.如權(quán)利要求5所述的數(shù)據(jù)廣播命令和點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送命令,其特征是發(fā)送方節(jié)點(diǎn)發(fā)送的一組數(shù)據(jù)以一個(gè)數(shù)據(jù)頭開始;在點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送命令流程中,接受方節(jié)點(diǎn)在接受到一個(gè)字節(jié)數(shù)據(jù)后,必須發(fā)一個(gè)字節(jié)同步與確認(rèn)信號(hào)ACK作確認(rèn)。
7.如權(quán)利要求4所述的字節(jié)讀寫模塊,其特征是由一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)字節(jié)讀寫的控制,和對(duì)信號(hào)收發(fā)信機(jī)發(fā)送控制命令,該狀態(tài)機(jī)由至少比傳輸?shù)谋忍芈士烊兜臅r(shí)鐘來(lái)協(xié)調(diào),并且要求兩個(gè)對(duì)話的節(jié)點(diǎn)使用相同的協(xié)調(diào)時(shí)鐘頻率,狀態(tài)機(jī)的下一個(gè)狀態(tài)將由當(dāng)前狀態(tài)的操作、來(lái)自通信命令控制模塊的控制命令和來(lái)自信號(hào)收發(fā)信機(jī)的輸入信號(hào)來(lái)決定。
8.如權(quán)利要求4所述的字節(jié)讀寫模塊,其特征是每一個(gè)字節(jié)在發(fā)送之前,必須先發(fā)送一個(gè)字節(jié)同步與確認(rèn)信號(hào)ACK,接收方節(jié)點(diǎn)在觀察到信號(hào)ACK后的第二個(gè)時(shí)鐘周期開始讀這個(gè)字節(jié)的信息。
9.如權(quán)利要求4所述的信號(hào)收發(fā)信機(jī)模塊,其特征是由一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)對(duì)起始信號(hào)STR、字節(jié)同步與確認(rèn)信號(hào)ACK的寫和邏輯1、邏輯0信號(hào)的讀寫控制,該狀態(tài)機(jī)使用與權(quán)利要求7所述的相同時(shí)鐘來(lái)協(xié)調(diào),該狀態(tài)機(jī)的下一個(gè)狀態(tài)由當(dāng)前狀態(tài)以及來(lái)自字節(jié)讀寫模塊的控制命令來(lái)決定;由另外一個(gè)狀態(tài)機(jī)來(lái)追蹤信號(hào)線上起始信號(hào)STR、字節(jié)同步與確認(rèn)信號(hào)ACK的發(fā)生,該狀態(tài)機(jī)使用與權(quán)利要求7所述的相同時(shí)鐘來(lái)協(xié)調(diào),該狀態(tài)機(jī)的下一個(gè)狀態(tài)由當(dāng)前狀態(tài)以及當(dāng)前狀態(tài)下的事件來(lái)決定。
10.如權(quán)利要求1所述的方法,其特征是節(jié)點(diǎn)在需要與所有節(jié)點(diǎn)通信時(shí)使用一個(gè)預(yù)先約定的基本時(shí)鐘頻率來(lái)協(xié)調(diào)開放式單線通信模塊的工作,而每個(gè)節(jié)點(diǎn)在空閑狀態(tài)時(shí)也使用該基本時(shí)鐘頻率來(lái)追蹤起始信號(hào)STR;節(jié)點(diǎn)還可以通過(guò)點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳送命令,與另外的節(jié)點(diǎn)協(xié)議使用更高的協(xié)調(diào)時(shí)鐘頻率。
全文摘要
公開一種應(yīng)用于家庭網(wǎng)絡(luò)和分布式控制網(wǎng)絡(luò)的開放式單線異步串行通信方法,該網(wǎng)絡(luò)內(nèi)的任何節(jié)點(diǎn)能通過(guò)一根信號(hào)線向其它節(jié)點(diǎn)傳送數(shù)據(jù),任何節(jié)點(diǎn)的加入和退出網(wǎng)絡(luò)不需要整個(gè)網(wǎng)絡(luò)的從新初始化。實(shí)現(xiàn)該通信方法的開放式單線通信模塊主要由通信命令控制模塊、字節(jié)讀寫模塊、信號(hào)收發(fā)信機(jī)模塊、一個(gè)8位移位寄存器以及ID位存儲(chǔ)器組成。所有節(jié)點(diǎn)使用基本的傳輸比特率,但是兩個(gè)節(jié)點(diǎn)之間可以協(xié)議使用更高的傳輸比特率。
文檔編號(hào)H04L12/28GK1440161SQ0211488
公開日2003年9月3日 申請(qǐng)日期2002年2月21日 優(yōu)先權(quán)日2002年2月21日
發(fā)明者黃慶文 申請(qǐng)人:黃慶文