本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種串行通信方法。
背景技術(shù):
串行通信是指使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于智能設(shè)備與智能設(shè)備、智能設(shè)備與外設(shè)之間的通信。
常用的串行通信技術(shù)有SPI、I2C、UART等。
SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫。SPI是一種全雙工同步通信總線。SPI以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要3根或者4根線。SPI接口包含SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時(shí)鐘)、CS(片選)。一對一工作時(shí),不需要片選信號。
I2C總線(I2C bus,Inter-IC bus)是一個(gè)雙向的兩線連續(xù)總線,提供集成電路(ICs)之間的通信線路。I2C總線采用一條數(shù)據(jù)線(SDA),加一條時(shí)鐘線(SCL)來完成數(shù)據(jù)的傳輸及外圍器件的擴(kuò)展;對各個(gè)節(jié)點(diǎn)的尋址是軟尋址方式,節(jié)省了片選線,標(biāo)準(zhǔn)的尋址字節(jié)SLAM為7位,可以尋址127個(gè)單元。
UART是通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter)的縮寫。UART總線是異步串口,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等于傳輸波特率的16倍)、UART接收器、UART發(fā)送器組成。硬件上由兩根線,一根用于發(fā)送,一根用于接收。
上述各種常用串行通信技術(shù)接口由兩根或兩根以上信號線組成,現(xiàn)實(shí)應(yīng)用中,某些應(yīng)用場景信號線資源有限,因此上述常用串行通信技術(shù)接口均無法滿足現(xiàn)實(shí)應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種串行通信方法,可在一根信號線上完成雙向傳輸。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種串行通信方法,主設(shè)備和從設(shè)備之間只有一根數(shù)據(jù)信號線,主設(shè)備發(fā)出探測信號,從設(shè)備回復(fù)確認(rèn)信號,主設(shè)備在收到確認(rèn)信號后,優(yōu)先決定是否獲得總線所有權(quán)向所述從設(shè)備發(fā)送數(shù)據(jù);當(dāng)主設(shè)備沒有獲取總線所有權(quán)時(shí),從設(shè)備獲得總線所有權(quán)向主設(shè)備發(fā)送數(shù)據(jù)。
上述串行通信方法還包括主設(shè)備和從設(shè)備的時(shí)鐘同步步驟,具體為:選擇具有相同波特率的時(shí)鐘發(fā)生器的主設(shè)備和從設(shè)備;設(shè)主設(shè)備和從設(shè)備的時(shí)鐘頻率為f1,時(shí)鐘周期為tBaud,并令每比特傳輸所占時(shí)間為UI;每比特傳輸所占時(shí)間UI為時(shí)鐘周期tBaud的整數(shù)倍;主從設(shè)備在每次傳輸開始時(shí)都由探測信號作為同步主設(shè)備和從設(shè)備的時(shí)鐘,實(shí)現(xiàn)主設(shè)備和從設(shè)備的時(shí)鐘同步。
上述串行通信方法在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)傳輸以字節(jié)為單位,數(shù)據(jù)傳輸采用1/4每比特傳輸所占時(shí)間的脈沖作為數(shù)據(jù)傳輸開始標(biāo)識,每字節(jié)數(shù)據(jù)附加一比特校驗(yàn)位,在多字節(jié)傳輸時(shí)字節(jié)之間插入1/4每比特傳輸所占時(shí)間的脈沖進(jìn)行區(qū)分。
字節(jié)的傳輸采用最高有效位方式,在最高有效位傳輸之前,先傳輸1/4每比特傳輸所占時(shí)間的脈沖;其中,附加的一比特校驗(yàn)位為奇偶校驗(yàn)位,采用偶校驗(yàn);在附加的一比特校驗(yàn)位和下一字節(jié)最高有效位之間插入1/4每比特傳輸所占時(shí)間的脈沖來區(qū)分字節(jié)。
當(dāng)最高有效位為0時(shí),傳輸1/4每比特傳輸所占時(shí)間的高電平脈沖后再傳輸最高有效位;當(dāng)最高有效位為1時(shí),傳輸1/4每比特傳輸所占時(shí)間的高電平脈沖后,再傳輸1/4每比特傳輸所占時(shí)間的低電平,最后再傳輸最高有效位。
當(dāng)數(shù)據(jù)傳輸結(jié)束時(shí),數(shù)據(jù)發(fā)送方發(fā)送結(jié)束脈沖表示數(shù)據(jù)傳輸結(jié)束,其中,結(jié)束脈沖的時(shí)長與1/4每比特傳輸所占時(shí)間不相等。
在數(shù)據(jù)傳輸時(shí),接收方根據(jù)收到數(shù)據(jù)的奇偶校驗(yàn)發(fā)送數(shù)據(jù)確認(rèn)脈沖;當(dāng)本次傳輸中接收的所有字節(jié)的奇偶校驗(yàn)位均正確的時(shí)候,接收方發(fā)送數(shù)據(jù)確認(rèn)脈沖隨后將總線驅(qū)動(dòng)至低電平并保持第一預(yù)設(shè)時(shí)長;當(dāng)本次傳輸中接收的任意一字節(jié)的奇偶校驗(yàn)位不正確的時(shí)候,則接收方不發(fā)送數(shù)據(jù)確認(rèn)脈沖,并將總線驅(qū)動(dòng)至低電平,并保持第二預(yù)設(shè)時(shí)長,其中,第二預(yù)設(shè)時(shí)長等于第一預(yù)設(shè)時(shí)長與發(fā)送數(shù)據(jù)確認(rèn)脈沖所需時(shí)長之和。
當(dāng)主設(shè)備沒有收到確認(rèn)信號時(shí),發(fā)送一個(gè)復(fù)位脈沖來復(fù)位鏈路,其中,復(fù)位脈沖所占的時(shí)長遠(yuǎn)遠(yuǎn)大于探測信號和確認(rèn)信號的時(shí)長。
有益效果
由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn)和積極效果:
本發(fā)明采用主設(shè)備發(fā)探測信號,從設(shè)備回確認(rèn)信號,主設(shè)備優(yōu)先決定是否獲得總線所有權(quán),從設(shè)備在主設(shè)備沒有獲取總線所有權(quán)的情況下可以獲得總線所有權(quán),通過該方式?jīng)Q定單根信號線上的數(shù)據(jù)方向,從而在一根信號線上完成雙向傳輸。
本發(fā)明可應(yīng)用于基于USB接口的快速充電系統(tǒng)。根據(jù)USB相關(guān)協(xié)議,USB終端設(shè)備根據(jù)USB接口建立連接時(shí)對D+/D-信號線電平的檢測來確認(rèn)連接的充電適配器的能力。本發(fā)明還可用于在完成USB標(biāo)識檢測之后的擴(kuò)展能力檢測,即在檢測流程之后,在D-信號線上建立雙向通信能力。雙向通信能力的建立可以在終端和充電適配器之間實(shí)現(xiàn)更復(fù)雜的功能。
附圖說明
圖1是本發(fā)明中獲取總線所有權(quán)時(shí)主設(shè)備和從設(shè)備的時(shí)序圖;
圖2是本發(fā)明中數(shù)據(jù)傳輸時(shí)的示意圖,其中,圖2A為最高有效位為0時(shí)的情況,圖2B為最高有效位為1時(shí)的情況;
圖3是本發(fā)明中數(shù)據(jù)傳輸時(shí)兩個(gè)字節(jié)之間區(qū)分的示意圖;
圖4是本發(fā)明中接收方接收數(shù)據(jù)的時(shí)序圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請所附權(quán)利要求書所限定的范圍。
對于在一根信號線上的串行通信技術(shù),可以分為三部分。其一是總線所有權(quán)。其二是時(shí)鐘同步。其三是數(shù)據(jù)傳送格式。本發(fā)明的系統(tǒng)包括主設(shè)備和從設(shè)備。通常,主設(shè)備是具有處理器的智能設(shè)備,從設(shè)備是僅具有簡單邏輯功能和寄存器的設(shè)備。從設(shè)備也可以是具有處理器的智能設(shè)備。主設(shè)備對通信具有控制能力。
本發(fā)明的實(shí)施方式涉及一種串行通信方法,主設(shè)備和從設(shè)備之間只有一根數(shù)據(jù)信號線,主設(shè)備發(fā)出探測信號,從設(shè)備回復(fù)確認(rèn)信號,主設(shè)備在收到確認(rèn)信號后,優(yōu)先決定是否獲得總線所有權(quán)向所述從設(shè)備發(fā)送數(shù)據(jù);當(dāng)主設(shè)備沒有獲取總線所有權(quán)時(shí),從設(shè)備獲得總線所有權(quán)向主設(shè)備發(fā)送數(shù)據(jù)。
其時(shí)序如圖1所示,通信過程總是以主設(shè)備發(fā)t1時(shí)長的探測信號開始。該信號同時(shí)用來同步主設(shè)備和從設(shè)備的時(shí)鐘。在探測信號之后,主設(shè)備將總線驅(qū)動(dòng)至低電平t2時(shí)長。在t2時(shí)長之后,從設(shè)備發(fā)t3時(shí)長的探測確認(rèn)信號。在收到t3時(shí)長的探測確認(rèn)信號之后,主設(shè)備將總線驅(qū)動(dòng)至低電平t4時(shí)長。t4時(shí)長之后,如果主設(shè)備需要獲得總線,則主設(shè)備開始發(fā)送數(shù)據(jù)。如果從設(shè)備檢測到總線上有數(shù)據(jù)在傳送,則從設(shè)備開始接收數(shù)據(jù)。如果從設(shè)備在t4時(shí)長之后沒有檢測到數(shù)據(jù)傳送,則從設(shè)備可以在t5時(shí)長之后開始發(fā)送數(shù)據(jù)。
對于主設(shè)備和從設(shè)備的時(shí)鐘同步,本發(fā)明采用主設(shè)備和從設(shè)備采用具有相同波特率的時(shí)鐘發(fā)生器。主設(shè)備和從設(shè)備時(shí)鐘頻率允許一定偏差。設(shè)兩者的時(shí)鐘頻率為f1,時(shí)鐘周期為tBaud。每比特傳輸所占時(shí)間為UI(Unit Interval)。UI為tBaud的整數(shù)倍,通常可取UI=16tBaud。上述時(shí)長t1、t2、t3、t4、t5及以后定義的脈沖時(shí)長皆為tBaud的整數(shù)倍,通??扇1=4UI,t2=1UI,t3=2UI,t4=1UI,t5=2UI。上述時(shí)間單位都大于tBaud,且主設(shè)備和從設(shè)備在每次傳輸開始時(shí)都由探測信號作為同步主設(shè)備和從設(shè)備的時(shí)鐘重新進(jìn)行同步,故主設(shè)備和從設(shè)備間的時(shí)間同步實(shí)現(xiàn)簡單。
對于數(shù)據(jù)傳輸格式,本發(fā)明定義數(shù)據(jù)傳輸以字節(jié)為單位,數(shù)據(jù)傳輸采用1/4UI脈沖作為數(shù)據(jù)傳輸開始標(biāo)識,每字節(jié)數(shù)據(jù)附加一比特的校驗(yàn)位,在多字節(jié)傳輸時(shí)字節(jié)之間插入1/4UI脈沖區(qū)分。具體如下:
字節(jié)的傳輸采用MSB(Most Significant Bit,最高有效位)方式,即先傳輸字節(jié)的最高位。在MSB傳輸之前,先傳輸1/4UI脈沖。針對MSB為0和1有以下兩種情況。MSB為0時(shí),傳輸1/4UI高電平脈沖后傳輸MSB,如圖2a所示。MSB為1時(shí),傳輸1/4UI高電平脈沖后傳輸1/4UI低電平再傳輸MSB,如圖2b所示。
附加的一比特校驗(yàn)位為奇偶校驗(yàn)位,本實(shí)施方式中采用偶校驗(yàn),即當(dāng)8比特?cái)?shù)據(jù)中1的個(gè)數(shù)為奇數(shù)時(shí)校驗(yàn)位為1,當(dāng)8比特?cái)?shù)據(jù)中1的個(gè)數(shù)為偶數(shù)時(shí)校驗(yàn)位為0。在奇偶校驗(yàn)位和下一字節(jié)MSB之間插入1/4UI脈沖來區(qū)分字節(jié)。奇偶校驗(yàn)位和MSB之間至少有三個(gè)跳變沿,如圖3所示。
當(dāng)數(shù)據(jù)傳輸結(jié)束時(shí),數(shù)據(jù)發(fā)送方發(fā)送t6時(shí)長的結(jié)束脈沖表示數(shù)據(jù)傳輸結(jié)束,并隨后將總線驅(qū)動(dòng)至低電平t7時(shí)長。t6不等于1/4UI,即當(dāng)數(shù)據(jù)的奇偶校驗(yàn)位發(fā)送后如果跟隨其后的是1/4UI脈沖則表示傳輸還在繼續(xù)。也就是說,當(dāng)奇偶校驗(yàn)位為0的時(shí)候,奇偶校驗(yàn)位后緊跟著結(jié)束脈沖。當(dāng)奇偶校驗(yàn)位為1的時(shí)候,奇偶校驗(yàn)位和結(jié)束脈沖之間插入1/4UI低電平。當(dāng)數(shù)據(jù)的奇偶校驗(yàn)位發(fā)送后如果跟隨其后的是t6時(shí)長結(jié)束脈沖則表示傳輸結(jié)束。
接收方根據(jù)收到數(shù)據(jù)的奇偶校驗(yàn)發(fā)送數(shù)據(jù)確認(rèn)脈沖。當(dāng)本次傳輸中接收的所有字節(jié)的奇偶校驗(yàn)位均正確的時(shí)候,接收方發(fā)送t8時(shí)長數(shù)據(jù)確認(rèn)脈沖隨后將總線驅(qū)動(dòng)至低電平t9時(shí)長。當(dāng)本次傳輸中接收的任意一字節(jié)的奇偶校驗(yàn)位不正確的時(shí)候,則接收方不發(fā)送數(shù)據(jù)確認(rèn)脈沖,并將總線驅(qū)動(dòng)至低電平t8+t9時(shí)長,如圖4所示。主設(shè)備可以在確認(rèn)脈沖結(jié)束之后重新發(fā)送探測脈沖發(fā)起新的數(shù)據(jù)傳輸。
當(dāng)主設(shè)備沒能如預(yù)期一樣收到從設(shè)備的響應(yīng)時(shí),主設(shè)備可以發(fā)送一個(gè)t10時(shí)長的復(fù)位脈沖來復(fù)位鏈路。通常t10會遠(yuǎn)遠(yuǎn)大于前述定義脈沖信號寬度。
不難發(fā)現(xiàn),本發(fā)明采用主設(shè)備發(fā)探測信號,從設(shè)備回確認(rèn)信號,主設(shè)備優(yōu)先決定是否獲得總線所有權(quán),從設(shè)備在主設(shè)備沒有獲取總線所有權(quán)的情況下可以獲得總線所有權(quán),通過該方式?jīng)Q定單根信號線上的數(shù)據(jù)方向,從而在一根信號線上完成雙向傳輸。
本發(fā)明可應(yīng)用于基于USB接口的快速充電系統(tǒng)。根據(jù)USB相關(guān)協(xié)議,USB終端設(shè)備根據(jù)USB接口建立連接時(shí)對D+/D-信號線電平的檢測來確認(rèn)連接的充電適配器的能力。本發(fā)明還可用于在完成USB標(biāo)識檢測之后的擴(kuò)展能力檢測,即在檢測流程之后,在D-信號線上建立雙向通信能力。雙向通信能力的建立可以在終端和充電適配器之間實(shí)現(xiàn)更復(fù)雜的功能。