專利名稱:一種單線串行接口協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于電子電路之間通訊的串行接口協(xié)議,尤其是利用一根信號線在集成電路之間進(jìn)行單向數(shù)據(jù)傳輸?shù)拇薪涌趨f(xié)議。
電子電路之間的通訊方式主要分為并行通訊和串行通訊并行通訊的優(yōu)點是通訊協(xié)議簡單,缺點是信號線較多;串行通訊的優(yōu)點是信號線較少,容易實現(xiàn)遠(yuǎn)距離傳輸,缺點是通訊協(xié)議復(fù)雜,也就是接口電路復(fù)雜。
一般的中低端電子產(chǎn)品,例如,主機(jī)與液晶顯示驅(qū)動模塊之間的信號連接,單片機(jī)與發(fā)光器件陣列、數(shù)碼管之間的通訊,這些通訊接口一般只進(jìn)行單向數(shù)據(jù)傳輸,并且對數(shù)據(jù)傳輸速度也要求不高(微秒級甚至毫秒級),但都需要通訊接口盡可能地簡單,易于實現(xiàn),并且因為液晶顯示模塊、數(shù)碼管一般安裝在電子產(chǎn)品、儀器設(shè)備的面板上,與主機(jī)之間有一段距離,所以不適宜使用并行通訊,這就需要一種協(xié)議簡單、容易實現(xiàn)、占用信號線較少的串行通訊接口。
目前常用的串行總線有I2C、USB等,串行接口有SPI、RS-232等,其中I2C、USB以及RS-232的通訊協(xié)議比較復(fù)雜,實現(xiàn)成本稍高,不適用于一般的中低端電子產(chǎn)品,SPI的通訊協(xié)議不是很復(fù)雜,但需要3到4根信號線,另外,還有一種業(yè)界常用的3線串行接口(位數(shù)據(jù)線、位時鐘線、幀完成線/幀加載線,對于雙向傳輸還要位數(shù)據(jù)輸出線),其協(xié)議比較簡單,但和SPI一樣,因為信號線較多,使得串行通訊的優(yōu)勢不能完全發(fā)揮出來。
本發(fā)明的目的是,提供一種低成本、易實現(xiàn)、只用一根信號線的點對點單向異步串行接口協(xié)議。
本發(fā)明的技術(shù)方案是1、定義單向數(shù)據(jù)傳輸?shù)陌l(fā)送方為源設(shè)備,接收方為目標(biāo)設(shè)備;2、定義信號線的默認(rèn)電平為高電平;3、定義一個時間閾值TH;4、定義小于時間閾值的時間范圍為TH1,不小于時間閾值的時間范圍為TH0;5、定義在信號線的低電平時間屬于TH1時,指示一個位數(shù)據(jù)B1;6、定義在信號線的低電平時間屬于TH0時,指示一個位數(shù)據(jù)B0;
7、定義在信號線由低電平變?yōu)楦唠娖郊瓷仙貢r,指示一個位數(shù)據(jù)輸入操作,目標(biāo)設(shè)備以此輸入位數(shù)據(jù)B1或者B0并移位;8、定義在信號線由低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH1時,指示一個位數(shù)據(jù)間隔,即兩個位數(shù)據(jù)之間的間隔。
9、定義在信號線由低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH0時,指示一個數(shù)據(jù)幀完成操作,即當(dāng)前的串行位數(shù)據(jù)結(jié)束,目標(biāo)設(shè)備以此加載和處理數(shù)據(jù)。
10、在完成前一個串行數(shù)據(jù)幀后,源設(shè)備可以隨時發(fā)送下一個串行數(shù)據(jù)幀。源設(shè)備一般是控制性設(shè)備,所以適宜用程序流程實現(xiàn)發(fā)送,發(fā)送流程包括1、取出位數(shù)據(jù),可以采用下述兩個具體方法之一根據(jù)已處理數(shù)據(jù)的位數(shù)直接選取待處理的位數(shù)據(jù),或者,取出最低(或最高)的數(shù)據(jù)位并對剩余數(shù)據(jù)進(jìn)行移位;2、分析位數(shù)據(jù),在位數(shù)據(jù)為B1時,控制信號線輸出屬于TH1時間的低電平,在位數(shù)據(jù)為B0時,控制信號線輸出屬于TH0時間的低電平;3、位間隔控制,在每次信號線輸出低電平后,控制信號線輸出屬于TH1時間的高電平,作為兩個位數(shù)據(jù)之間的間隔;4、計數(shù)位數(shù)據(jù),根據(jù)已處理數(shù)據(jù)的位數(shù)判別所有位數(shù)據(jù)是否處理完畢,未完則重復(fù)前述步驟(1、2、3),取出并處理下一個位數(shù)據(jù);5、幀間隔控制,在所有位數(shù)據(jù)處理完畢之后,控制信號線輸出屬于TH0時間的高電平,作為數(shù)據(jù)幀之間的間隔。目標(biāo)設(shè)備一般是功能性設(shè)備,所以適宜用硬件電路實現(xiàn)接收,接收電路包括1、狀態(tài)檢測器(1),用于檢測信號線的電平變化;2、計數(shù)器(2),具有計數(shù)使能輸入端(ENABLE)、置位輸入端(PRESET)、復(fù)位輸入端(RESET)、時鐘輸入端(CK)及計數(shù)輸出端(Q),用于以系統(tǒng)時鐘周期為單位對信號線的穩(wěn)定狀態(tài)(電平無變化)進(jìn)行計時;3、比較器(32)和閾值(31),比較器(32)用于將閾值(31)與計數(shù)器(2)的計數(shù)值進(jìn)行比較,即比較時間閾值和信號線的穩(wěn)定狀態(tài)時間,以確定信號線的穩(wěn)定狀態(tài)時間是屬于TH1還是屬于TH0;4、與門(4),在信號線從低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH0時,產(chǎn)生數(shù)據(jù)幀完成信號(LOAD);5、非門(5),用于將比較器(32)的輸出進(jìn)行反相,產(chǎn)生計數(shù)使能信號;6、狀態(tài)檢測器(1)的輸出端與計數(shù)器(2)的復(fù)位輸入端相連接,當(dāng)檢測到信號線的電平變化時,將復(fù)位計數(shù)器;計數(shù)器(2)的時鐘輸入端連接了系統(tǒng)時鐘信號;計數(shù)器(2)的置位輸入端連接了系統(tǒng)復(fù)位信號,在系統(tǒng)復(fù)位時將計數(shù)器的值置為閾值,從而確保整個接收電路進(jìn)入可預(yù)知狀態(tài);計數(shù)器(2)的計數(shù)輸出端(Q)和閾值(31)分別連接到比較器(32)的兩個輸入端,如果比較結(jié)果是兩值相等,即信號線的穩(wěn)定狀態(tài)時間達(dá)到時間閾值,則比較器輸出高電平;與門(4)的兩個輸入端分別連接信號線和比較器(32)的輸出端,在信號線從低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH0時,輸出高電平,產(chǎn)生數(shù)據(jù)幀完成信號(LOAD);非門(5)的輸入端連接到比較器(32)的輸出端,其輸出端與計數(shù)器(2)的計數(shù)使能輸入端相連接,在計數(shù)器的計數(shù)值達(dá)到閾值時輸出低電平,使計數(shù)器停止計數(shù)而不會溢出;信號線直接作為串行位時鐘信號(CLOCK)。
上述方案中,位數(shù)據(jù)B1和B0是兩個相反的位數(shù)據(jù),分別定義為1和0,非門(5)的輸出端作為串行位數(shù)據(jù)信號(DATA)。根據(jù)需要,作為協(xié)議的變通形式,也可以定義位數(shù)據(jù)B1和B0分別為0和1,并將比較器(32)的輸出端作為串行位數(shù)據(jù)信號(DATA0)。
上述方案中,數(shù)據(jù)以低位在先、高位在后的順序逐位傳輸,源設(shè)備先發(fā)送低位數(shù)據(jù),再發(fā)送高位數(shù)據(jù),目標(biāo)設(shè)備將最近接收到的位數(shù)據(jù)保存到高位寄存器,并將高位寄存器的原數(shù)據(jù)依次向低位寄存器移位。根據(jù)需要,作為協(xié)議的變通形式,也可以定義數(shù)據(jù)以高位在先、低位在后的順序逐位傳輸,源設(shè)備先發(fā)送高位數(shù)據(jù),再發(fā)送低位數(shù)據(jù),目標(biāo)設(shè)備以低位寄存器接收最近的位數(shù)據(jù),并將原數(shù)據(jù)依次向高位寄存器移位。
上述方案的接收電路中,目標(biāo)設(shè)備可以將該串行接口協(xié)議的唯一信號線解析為3根位數(shù)據(jù)線(DATA)、位時鐘線(CLOCK)、幀完成線(LOAD),然后參照業(yè)界常用的3線串行接口進(jìn)行數(shù)據(jù)處理,實現(xiàn)與源設(shè)備的數(shù)據(jù)通訊。
上述方案中,閾值是一個預(yù)設(shè)的、可以由源設(shè)備和目標(biāo)設(shè)備共同商議的數(shù)值,時間閾值TH是由閾值決定的、以系統(tǒng)時鐘周期為單位的時間門限,系統(tǒng)時鐘周期越小、閾值越小,則數(shù)據(jù)傳輸速度越高,但受到源設(shè)備或者目標(biāo)設(shè)備的數(shù)據(jù)處理能力的限制。在具體實施方面,時間閾值TH一般不宜低于系統(tǒng)時鐘周期的4倍;當(dāng)源設(shè)備或者目標(biāo)設(shè)備的系統(tǒng)時鐘信號不是很精確時,可以考慮加大時間閾值TH,對于源設(shè)備,還可以在TH1和TH0之間保留一段時間范圍,以避免目標(biāo)設(shè)備產(chǎn)生誤碼,一般在位數(shù)據(jù)為B1時,信號線輸出低電平的時間為0.5倍TH;在位數(shù)據(jù)為B0時,信號線輸出低電平的時間為2倍TH。
基于本發(fā)明的技術(shù)方案,可以在一般的中低端電子產(chǎn)品以及相應(yīng)的集成電路中,以較低的硬件成本、較少的資源消耗、較小的軟件開銷,實現(xiàn)各集成電路和模塊之間的數(shù)據(jù)傳輸,尤其適宜作為源設(shè)備的單片機(jī)向作為目標(biāo)設(shè)備的外圍器件傳輸數(shù)據(jù)。
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。
圖1為本發(fā)明技術(shù)方案的接收電路的框圖。
圖2為本發(fā)明技術(shù)方案的接收電路的實施例。
圖3為本發(fā)明技術(shù)方案的發(fā)送流程圖的實施例。
圖4為業(yè)界常用的3線串行接口的電路框圖。
圖5為本發(fā)明技術(shù)方案的接收電路的波形示意圖。
見圖1,這是本發(fā)明技術(shù)方案的接收電路的框圖。因為單向傳輸?shù)慕邮辗揭话闶枪δ苄缘耐鈬骷?,用于實現(xiàn)某個或者某幾個特定的功能,從軟硬件的綜合成本上考慮,適宜用硬件電路實現(xiàn)串行通訊接口的接收。在該接收電路中,基于本發(fā)明技術(shù)方案的串行接口的唯一信號線被解析為3根位數(shù)據(jù)線(DATA)、位時鐘線(CLOCK)、幀完成線(LOAD),其中,位時鐘線即原信號線,位數(shù)據(jù)線和幀完成線由該接收電路根據(jù)原信號線的信號電平和保持時間解析產(chǎn)生,然后就可以參照業(yè)界常用的3線串行接口進(jìn)行數(shù)據(jù)處理。
見圖2,這是內(nèi)置接收電路的集成電路CH451的局部硬件原理圖。在這個實施例中,狀態(tài)檢測器由寄存器(11)和異或門(12)構(gòu)成,寄存器(11)是一種觸發(fā)器,其時鐘輸入端連接了系統(tǒng)時鐘信號,以系統(tǒng)時鐘的邊沿為觸發(fā)信號,其輸入端與異或門(12)的一個輸入端相連接后,作為狀態(tài)檢測器的輸入端,異或門(12)的另一個輸入端連接寄存器(11)的輸出端,異或門(12)的輸出端作為狀態(tài)檢測器的輸出端,與計數(shù)器(2)的復(fù)位輸入端相連接;閾值被預(yù)設(shè)為111(三位二進(jìn)制數(shù),對應(yīng)于十制數(shù)7),比較器(32)和閾值(31)被合成并且簡化為具有三個輸入的第二與門(3),計數(shù)器(2)是三位計數(shù)器,其計數(shù)輸出端(Q0、Q1、Q2)分別連接第二與門(3)的三個輸入端。當(dāng)信號線的電平發(fā)生變化時,因為寄存器(11)的輸出仍然保持了前一個系統(tǒng)時鐘邊沿到來時的信號線的狀態(tài),所以異或門(12)的輸出為高電平,使得計數(shù)器(2)進(jìn)行復(fù)位;在下一個系統(tǒng)時鐘邊沿到來時,寄存器(11)的輸出更新為當(dāng)前信號線的狀態(tài),所以異或門(12)的輸出為低電平,計數(shù)器(2)可以開始正常計數(shù)。如果信號線的穩(wěn)定狀態(tài)時間小于時間閾值,則計數(shù)器(2)不能計數(shù)到111,第二與門(3)將一直輸出低電平;如果信號線的穩(wěn)定狀態(tài)時間大于時間閾值,則計數(shù)器(2)將一直計數(shù)到111,第二與門(3)將輸出高電平,經(jīng)非門(5)反相后,使計數(shù)器(2)的計數(shù)使能輸入端變?yōu)榈碗娖剑瑥亩褂嫈?shù)器(2)暫停計數(shù),直到信號線發(fā)生電平變化而復(fù)位。非門(5)的輸出端作為位數(shù)據(jù)線(DATA),在信號線的穩(wěn)定狀態(tài)時間屬于TH1時輸出高電平,否則輸出低電平;信號線同時作為位時鐘線(CLOCK),其上升沿使后續(xù)的處理電路輸入位數(shù)據(jù)線(DATA)上的位數(shù)據(jù);與門(4)的輸出端作為幀完成線(LOAD),在信號線從低電平變化為高電平并且保持時間達(dá)到時間閾值后,幀完成線出現(xiàn)高電平,啟動后續(xù)的處理電路加載和處理當(dāng)前幀的數(shù)據(jù)。關(guān)于后續(xù)的處理電路請參考稍后的圖4。集成電路CH451屬于單片機(jī)外圍器件,其內(nèi)置的整個接收電路只相當(dāng)于幾十個門單元,結(jié)構(gòu)簡單,實現(xiàn)成本低。
見圖3,這是本發(fā)明技術(shù)方案的發(fā)送流程圖的實施例。因為單向傳輸?shù)陌l(fā)送方一般都是以單片機(jī)、DSP、微處理器為代表的控制性設(shè)備,從軟硬件的綜合成本上考慮,適宜用軟件程序模擬的方式實現(xiàn)串行通訊接口的發(fā)送。該發(fā)送流程圖可以用于所有的單片機(jī)中,但對于啟用中斷的單片機(jī),一般還需要在該發(fā)送程序執(zhí)行期間禁止中斷,以確保信號線穩(wěn)定狀態(tài)時間的精確。在該流程圖中,TH代表時間閾值,對于要求屬于TH1的時間以0.5倍的TH執(zhí)行,對于要求屬于TH0的時間以2倍的TH執(zhí)行。整個程序在普通的精簡指令集單片機(jī)上只需要幾十條指令,占用資源少,軟件開銷小。
見圖4,這是業(yè)界常用的3線串行接口的電路框圖。該框圖中,除了必要的位數(shù)據(jù)線(DATA)、位時鐘線(CLOCK)、幀完成線(LOAD)之外,還標(biāo)示了一根可選的級聯(lián)輸出線(DOUT),被連接到最低位寄存器(80)的輸出端,用于該3線串行接口的級聯(lián)。在位時鐘線(CLOCK)的每個上升沿,最高位寄存器(8n)移入位數(shù)據(jù)線(DATA)上的最新的串行數(shù)據(jù),同時原數(shù)據(jù)被移出并進(jìn)入次高位寄存器,以此類推,最低位寄存器(80)移入次低位寄存器(81)中的原數(shù)據(jù),同時最低位寄存器(80)中的原數(shù)據(jù)被移出。當(dāng)幀完成線(LOAD)出現(xiàn)上升沿及高電平時,指示當(dāng)前幀的所有數(shù)據(jù)已經(jīng)出現(xiàn)在數(shù)據(jù)處理模塊(9)的各個輸入端(Dn至D0),數(shù)據(jù)處理模塊(9)可以對這些數(shù)據(jù)進(jìn)行加載和分析處理,包括鎖存數(shù)據(jù)、命令分析等等。
見圖5,這是本發(fā)明技術(shù)方案的接收電路的波形示意圖。從上至下,分別是CLOCK(位時鐘線)的波形、位數(shù)據(jù)(在CLOCK出現(xiàn)上升沿時DATA上的位數(shù)據(jù))、DATA(位數(shù)據(jù)線)的波形、LOAD(幀完成線)的波形,其中CLOCK的波形同時是單線串行接口的信號線的波形,每個數(shù)據(jù)幀包含8個位數(shù)據(jù),如果是低位在先的傳輸順序,圖示波形表示傳輸了1個字節(jié),數(shù)據(jù)是01011001(二進(jìn)制數(shù)據(jù))。
本發(fā)明的技術(shù)方案,協(xié)議簡單,低成本,易實現(xiàn),只需要一根信號線,特別適宜單片機(jī)向外圍器件傳輸數(shù)據(jù)。另外,在參考了本發(fā)明所指出的總體技術(shù)方案后,具體實施上還可以有局部的調(diào)整或者變化。
權(quán)利要求
1.一種串行接口協(xié)議,基于唯一的一根信號線進(jìn)行單向數(shù)據(jù)傳輸,其特征是①定義信號線的默認(rèn)電平為高電平;②定義一個時間閾值TH;③定義小于時間閾值的時間范圍為TH1,不小于時間閾值的時間范圍為THO;④定義在信號線的低電平時間屬于TH1時,指示一個位數(shù)據(jù)B1;⑤定義在信號線的低電平時間屬于TH0時,指示一個位數(shù)據(jù)B0;⑥定義在信號線由低電平變?yōu)楦唠娖郊瓷仙貢r,指示一個位數(shù)據(jù)輸入操作;⑦定義在信號線由低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH1時,指示一個位數(shù)據(jù)間隔;⑧定義在信號線由低電平變?yōu)楦唠娖讲⑶冶3指唠娖降臅r間屬于TH0時,指示一個數(shù)據(jù)幀完成操作。
2.根據(jù)權(quán)利要求1所述的串行接口協(xié)議,其特征是位數(shù)據(jù)B1和B0是兩個相反的位數(shù)據(jù),分別是1和0。
3.根據(jù)權(quán)利要求1或2所述的串行接口協(xié)議,其特征是每幀數(shù)據(jù)包含8個位數(shù)據(jù),數(shù)據(jù)以低位在先、高位在后的順序逐位傳輸。
4.一種串行接口接收電路,用于將基于唯一信號線的單線串行接口解析為常用的3線串行接口(位數(shù)據(jù)線、位時鐘線、幀完成線),其特征是①具有狀態(tài)檢測器,用于檢測信號線的電平變化;②具有計數(shù)器,用于以系統(tǒng)時鐘周期為單位對信號線的穩(wěn)定狀態(tài)進(jìn)行計時;③具有比較器和閾值,用于確定信號線的穩(wěn)定狀態(tài)時間是否達(dá)到時間閾值;④具有與門,在信號線變?yōu)楦唠娖讲⑶冶3謺r間達(dá)到時間閾值時產(chǎn)生幀完成信號;⑤信號線同時作為位時鐘線,狀態(tài)檢測器的輸入端連接信號線,狀態(tài)檢測器的輸出端與計數(shù)器的復(fù)位輸入端相連接,計數(shù)器的計數(shù)輸出端與比較器的一個輸入端相連接,與門的兩個輸入端分別連接比較器的輸出端和信號線。
5.根據(jù)權(quán)利要求4所述的串行接口接收電路,其特征是所述串行接口接收電路還具有一個非門,其輸入端連接到比較器的輸出端,其輸出端連接到計數(shù)器的計數(shù)使能輸入端,該非門的輸出同時作為位數(shù)據(jù)線。
6.根據(jù)權(quán)利要求4所述的串行接口接收電路,其特征是狀態(tài)檢測器由寄存器和異或門構(gòu)成,寄存器的輸入端與異或門的一個輸入端相連接后作為狀態(tài)檢測器的輸入端,異或門的另一個輸入端連接寄存器的輸出端,異或門的輸出端作為狀態(tài)檢測器的輸出端。
7.根據(jù)權(quán)利要求4所述的串行接口接收電路,其特征是比較器和閾值合成為第二與門,該與門的輸入端替代比較器的輸入端與計數(shù)器的計數(shù)輸出端相連接,該與門的輸出端替代比較器的輸出端。
8.根據(jù)權(quán)利要求4、5、6或7所述的串行接口接收電路,其特征是所述串行接口電路被包含在一個集成電路芯片中,該芯片具有信號線輸入引腳,并且位數(shù)據(jù)線、位時鐘線和幀完成線沒有輸出引腳,而是作為芯片內(nèi)部的節(jié)點直接連接到后續(xù)處理模塊。
全文摘要
本發(fā)明是一種點對點單向異步串行接口協(xié)議。包括定義一個時間閾值TH;定義在信號線的低電平時間小于TH或者不小于TH時,指示兩種相反的位數(shù)據(jù);定義在信號線出現(xiàn)上升沿時,指示一個位數(shù)據(jù)輸入操作;定義在信號線由低電平變?yōu)楦唠娖讲⑶冶3謺r間不小于TH時,指示一個數(shù)據(jù)幀完成操作。協(xié)議簡單,硬件成本低,軟件開銷小,只需要一根信號線就能完成串行通訊,特別適用于單片機(jī)向外圍器件的數(shù)據(jù)傳輸。
文檔編號G06F13/00GK1449168SQ0311341
公開日2003年10月15日 申請日期2003年5月8日 優(yōu)先權(quán)日2003年5月8日
發(fā)明者尹啟鳳 申請人:尹啟鳳