本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種單總線異步串口通信系統(tǒng)及其通信方法。
背景技術(shù):
通用異步串口通信具有協(xié)議簡單、功耗低、傳輸距離遠(yuǎn)的特點,廣泛應(yīng)用于各種低速率數(shù)字通信接口。標(biāo)準(zhǔn)的異步串口收發(fā)機(jī)系統(tǒng)中,主設(shè)備和從設(shè)備之間需要連接四根線,分別是串口數(shù)據(jù)傳輸線(TX)、串口數(shù)據(jù)接收線(RX)、發(fā)送數(shù)據(jù)請求線(RTS)、清除發(fā)送線(CTS)?,F(xiàn)有通用異步串口通信系統(tǒng)存在接口線過于復(fù)雜的問題,并且不同設(shè)備之間進(jìn)行串口通信時需要調(diào)整波特率以進(jìn)行正常通信。雖然目前有很多實現(xiàn)波特率自動檢測的技術(shù),但是都是基于軟件配置或者是采用查表方式進(jìn)行波特率匹配,實現(xiàn)效率不夠高。
技術(shù)實現(xiàn)要素:
為此,本發(fā)明要解決的技術(shù)問題是標(biāo)準(zhǔn)的異步串口收發(fā)機(jī)系統(tǒng)中需要四根連接線,并且波特率自動檢測效率較低,占用資源較多。
為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
一種單總線異步串口通信系統(tǒng),包括:主設(shè)備和從設(shè)備,所述主設(shè)備和所述從設(shè)備之間通過一根數(shù)據(jù)總線實現(xiàn)連接,所述從設(shè)備內(nèi)置有串口通信接口電路,其實現(xiàn)對所述主設(shè)備的波特率自動檢測和調(diào)整,接受所述主設(shè)備的控制命令和數(shù)據(jù),并返回相應(yīng)的響應(yīng)數(shù)據(jù)。
優(yōu)選的,所述串口通信接口電路包括:上升沿檢測模塊、下降沿檢測模塊、脈寬計數(shù)器、接收計數(shù)器、移位寄存器、錯位比較器、接收數(shù)據(jù)緩存器、word計數(shù)器,其中所述上升沿檢測模塊、所述下降沿檢測模塊、所述移位寄存器均與所述數(shù)據(jù)總線連接,用于接收數(shù)據(jù)總線發(fā)送的數(shù)據(jù);所述上升沿檢測模塊和所述下降沿檢測模塊與所述脈寬計數(shù)器和所述接收計數(shù)器連接;所述接收計數(shù)器與所述錯位比較器和所述word計數(shù)器連接,所述錯位比較器和所述word計數(shù)器連接與所述移位寄存器,所述移位寄存器發(fā)送數(shù)據(jù)至所述接收數(shù)據(jù)緩存器中。
優(yōu)選的,所述串口通信接口電路還包括:輸出狀態(tài)控制機(jī)、發(fā)送計數(shù)器、發(fā)送數(shù)據(jù)緩存器、總線接口控制器,其中所述發(fā)送計數(shù)器發(fā)送脈沖至所述輸出狀態(tài)控制機(jī),所述輸出狀態(tài)控制機(jī)存儲數(shù)據(jù)至所述發(fā)送數(shù)據(jù)緩存器中,所述總線接口控制器將所述發(fā)送數(shù)據(jù)緩存器中的數(shù)據(jù)發(fā)送至所述數(shù)據(jù)總線。
優(yōu)選的,所述串口通信接口電路還包括一個基準(zhǔn)時鐘,所述脈寬計數(shù)器、所述接收計數(shù)器和所述發(fā)送計數(shù)器的時鐘均來自于所述基準(zhǔn)時鐘。
一種單總線異步串口通信方法,包括如下步驟:
波特率自動檢測步驟:上電之后主設(shè)備發(fā)送OX01數(shù)據(jù)給從設(shè)備,從設(shè)備通過檢測數(shù)據(jù)總線上的第一個下降沿和第一個上升沿之間的寬度來計算當(dāng)前通信波特率;
數(shù)據(jù)接收步驟:主設(shè)備發(fā)送數(shù)據(jù)給從設(shè)備,從設(shè)備啟動接收計數(shù)器開始計數(shù),而后接收計數(shù)器將當(dāng)前值與脈寬計數(shù)器右移一位之后的值進(jìn)行比較并輸出bit采樣時鐘;數(shù)據(jù)總線上的數(shù)據(jù)在bit采樣時鐘的作用下被依次送入移位寄存器中,當(dāng)采樣信號完成后,起始位已經(jīng)被移出位移寄存器;有用的數(shù)據(jù)會被存放在移位寄存器中的低八位中,該數(shù)據(jù)在word計數(shù)器產(chǎn)生的word采樣時鐘作用下裝載到接收數(shù)據(jù)緩存器中;
數(shù)據(jù)發(fā)送步驟:從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)時,輸出數(shù)據(jù)通過總線控制接口的一個三態(tài)門輸出到數(shù)據(jù)總線上。
優(yōu)選的,還包括波特率重設(shè)步驟:
主設(shè)備向從設(shè)備發(fā)送OXFF命令,從設(shè)備收到OXFF數(shù)據(jù)之后,啟動內(nèi)部復(fù)位電路,將脈寬計數(shù)器復(fù)位,在收到下一次波特率檢測命令后脈寬計數(shù)器開始新的計數(shù),重復(fù)波特率自動檢測步驟。
優(yōu)選的,所述數(shù)據(jù)接收步驟具體包括:
當(dāng)數(shù)據(jù)總線有下降沿出現(xiàn)時,接收計數(shù)器開始計數(shù),當(dāng)接收計數(shù)器等于脈寬計數(shù)器的數(shù)值時,接收計數(shù)器在下一個基準(zhǔn)時鐘信號時刻被置1,然后開始下一輪計數(shù),完成10輪計數(shù)后被強制復(fù)位;接收計數(shù)器在計數(shù)的循環(huán)過程中,將當(dāng)前值與脈寬計數(shù)器右移一位之后的值進(jìn)行比較,如果相同則輸出一個bit采樣時鐘,在一次通信過程中會產(chǎn)生10個bit采樣脈沖;
數(shù)據(jù)總線上的數(shù)據(jù)在bit采樣時鐘的作用下被依次送入一個9位的移位寄存器中,當(dāng)十次采樣信號完成后,起始位已經(jīng)被移出位移寄存器;有用的數(shù)據(jù)會被存放在移位寄存器中的低八位中,該數(shù)據(jù)在word計數(shù)器產(chǎn)生的采樣脈沖的作用下一次性裝載到接收數(shù)據(jù)緩存器中。
優(yōu)選的,所述數(shù)據(jù)發(fā)送步驟具體包括:
當(dāng)發(fā)送數(shù)據(jù)使能有效時,發(fā)送計數(shù)器開始計數(shù),當(dāng)計數(shù)值等于存儲于脈寬計數(shù)器中的數(shù)值時,輸出一個bit發(fā)送脈沖;隨后發(fā)送計數(shù)器在下一個基準(zhǔn)時鐘時被置1,開始下一輪計數(shù)和比較,依次循環(huán),直至產(chǎn)生10個bit位傳輸脈沖;
發(fā)送數(shù)據(jù)的順序控制由輸出狀態(tài)控制機(jī)執(zhí)行,輸出狀態(tài)控制機(jī)在第一個傳輸脈沖來時,將輸出數(shù)據(jù)總線拉置低電平,隨后的8個傳輸脈沖來時,依次將存儲在發(fā)送數(shù)據(jù)緩存器中的待發(fā)送數(shù)據(jù)送到數(shù)據(jù)總線上,發(fā)送順序還是從低位開始發(fā)送,在第10個傳輸脈沖來時,將數(shù)據(jù)總線電平拉高。
本發(fā)明的有益效果:采用單總線傳輸數(shù)據(jù),采用位寬計數(shù)比較技術(shù)實現(xiàn)波特率自動檢測。從設(shè)備只需要一根數(shù)據(jù)線就可以和主設(shè)備進(jìn)行數(shù)據(jù)傳輸,極大的降低了通信接口的復(fù)雜度。波特率自動檢測采用專用位寬計數(shù)比較技術(shù)可以快速準(zhǔn)確的自動檢測通信波特率,采用的集成電路晶體管數(shù)目少(300門左右),節(jié)約芯片成本。
附圖說明
為了使本發(fā)明的內(nèi)容更容易被清楚的理解,下面結(jié)合附圖,對本發(fā)明作進(jìn)一步詳細(xì)的說明,其中:
圖1是本發(fā)明單總線異步串口通信系統(tǒng)的原理圖。
具體實施方式
實施例1
參見圖1,為符合本實施例所述的一種單總線異步串口通信系統(tǒng),包括:主設(shè)備和從設(shè)備,所述主設(shè)備和所述從設(shè)備之間通過一根數(shù)據(jù)總線實現(xiàn)連接,所述從設(shè)備內(nèi)置有串口通信接口電路,其實現(xiàn)對所述主設(shè)備的波特率自動檢測和調(diào)整,接受所述主設(shè)備的控制命令和數(shù)據(jù),并返回相應(yīng)的響應(yīng)數(shù)據(jù)。
優(yōu)選的,所述串口通信接口電路包括:上升沿檢測模塊、下降沿檢測模塊、脈寬計數(shù)器、接收計數(shù)器、移位寄存器、錯位比較器、接收數(shù)據(jù)緩存器、word計數(shù)器,其中所述上升沿檢測模塊、所述下降沿檢測模塊、所述移位寄存器均與所述數(shù)據(jù)總線連接,用于接收數(shù)據(jù)總線發(fā)送的數(shù)據(jù);所述上升沿檢測模塊和所述下降沿檢測模塊與所述脈寬計數(shù)器和所述接收計數(shù)器連接;所述接收計數(shù)器與所述錯位比較器和所述word計數(shù)器連接,所述錯位比較器和所述word計數(shù)器連接與所述移位寄存器,所述移位寄存器發(fā)送數(shù)據(jù)至所述接收數(shù)據(jù)緩存器中。
優(yōu)選的,所述串口通信接口電路還包括:輸出狀態(tài)控制機(jī)、發(fā)送計數(shù)器、發(fā)送數(shù)據(jù)緩存器、總線接口控制器,其中所述發(fā)送計數(shù)器發(fā)送脈沖至所述輸出狀態(tài)控制機(jī),所述輸出狀態(tài)控制機(jī)存儲數(shù)據(jù)至所述發(fā)送數(shù)據(jù)緩存器中,所述總線接口控制器將所述發(fā)送數(shù)據(jù)緩存器中的數(shù)據(jù)發(fā)送至所述數(shù)據(jù)總線。
優(yōu)選的,所述串口通信接口電路還包括一個基準(zhǔn)時鐘,所述脈寬計數(shù)器、所述接收計數(shù)器和所述發(fā)送計數(shù)器的時鐘均來自于所述基準(zhǔn)時鐘。
本實施例采用單總線傳輸數(shù)據(jù),采用位寬計數(shù)比較技術(shù)實現(xiàn)波特率自動檢測。標(biāo)準(zhǔn)的異步串口收發(fā)機(jī)系統(tǒng)中,主設(shè)備和從設(shè)備之間需要連接四根線,分別是串口數(shù)據(jù)傳輸線(TX)、串口數(shù)據(jù)接收線(RX)、發(fā)送數(shù)據(jù)請求線(RTS)、清除發(fā)送線(CTS)。本發(fā)明中的從設(shè)備只需要一根數(shù)據(jù)線就可以和主設(shè)備進(jìn)行數(shù)據(jù)傳輸,極大的降低了通信接口的復(fù)雜度。
實施例2
一種基于實施例1所述的單總線異步串口通信系統(tǒng)的通信方法,包括如下步驟:
波特率自動檢測步驟:上電之后主設(shè)備發(fā)送OX01數(shù)據(jù)給從設(shè)備,從設(shè)備通過檢測數(shù)據(jù)總線上的第一個下降沿和第一個上升沿之間的寬度來計算當(dāng)前通信波特率;具體在于:采用一個脈寬計數(shù)器從下降沿開始計數(shù),到上升沿來的時候停止。計數(shù)器的時鐘來自電路內(nèi)部的基準(zhǔn)時鐘信號,該時鐘信號頻率遠(yuǎn)大于波特率。脈寬計數(shù)器記錄的數(shù)據(jù)即代表當(dāng)前的波特率,脈寬計數(shù)器在第一次計數(shù)之后就會被鎖定,不會再被由數(shù)據(jù)線上的下降沿觸發(fā)計數(shù),除非系統(tǒng)復(fù)位或者主機(jī)發(fā)送波特率重新檢測的命令。
數(shù)據(jù)接收步驟:主設(shè)備發(fā)送數(shù)據(jù)給從設(shè)備,從設(shè)備啟動接收計數(shù)器開始計數(shù),而后接收計數(shù)器將當(dāng)前值與脈寬計數(shù)器右移一位之后的值進(jìn)行比較并輸出bit采樣時鐘;數(shù)據(jù)總線上的數(shù)據(jù)在bit采樣時鐘的作用下被依次送入移位寄存器中,當(dāng)采樣信號完成后,起始位已經(jīng)被移出位移寄存器;有用的數(shù)據(jù)會被存放在移位寄存器中的低八位中,該數(shù)據(jù)在word計數(shù)器產(chǎn)生的作用下裝載到接收數(shù)據(jù)緩存器中;
數(shù)據(jù)發(fā)送步驟:從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)時,輸出數(shù)據(jù)通過總線控制接口的一個三態(tài)門輸出到數(shù)據(jù)總線上。
優(yōu)選的,還包括波特率重設(shè)步驟:
主設(shè)備向從設(shè)備發(fā)送OXFF命令,從設(shè)備收到OXFF數(shù)據(jù)之后,啟動內(nèi)部復(fù)位電路,將脈寬計數(shù)器復(fù)位,脈寬計數(shù)器開始新的計數(shù),重復(fù)波特率自動檢測步驟。
優(yōu)選的,所述數(shù)據(jù)接收步驟具體包括:
當(dāng)數(shù)據(jù)總線有下降沿出現(xiàn)時,接收計數(shù)器開始計數(shù),當(dāng)接收計數(shù)器等于脈寬計數(shù)器的數(shù)值時,接收計數(shù)器在下一個基準(zhǔn)時鐘信號時刻被置1,然后開始下一輪計數(shù),完成10輪計數(shù)后被強制復(fù)位;接收計數(shù)器在計數(shù)的循環(huán)過程中,將當(dāng)前值與脈寬計數(shù)器右移一位之后的值進(jìn)行比較,如果相同則輸出一個bit采樣時鐘,在一次通信過程中會產(chǎn)生10個bit采樣脈沖;
數(shù)據(jù)總線上的數(shù)據(jù)在bit采樣時鐘的作用下被依次送入一個9位的移位寄存器中,當(dāng)十次采樣信號完成后,起始位已經(jīng)被移出位移寄存器;有用的數(shù)據(jù)會被存放在移位寄存器中的低八位中,該數(shù)據(jù)在word計數(shù)器產(chǎn)生的采樣脈沖的作用下一次性裝載到接收數(shù)據(jù)緩存器中。這個采樣時鐘脈沖是由一個計數(shù)周期為10的計數(shù)器產(chǎn)生的,它對bit采樣時鐘信號進(jìn)行計數(shù),每當(dāng)計數(shù)到10時,輸出一個word時鐘采樣信號,用于8bit數(shù)據(jù)的加載。隨后自動清零,等待下一次計數(shù)。
優(yōu)選的,所述數(shù)據(jù)發(fā)送步驟具體包括:
該控制邏輯核心是一個發(fā)送計數(shù)器和一個輸出控制狀態(tài)機(jī)。當(dāng)發(fā)送數(shù)據(jù)使能有效時,發(fā)送計數(shù)器開始計數(shù),當(dāng)計數(shù)值等于存儲于脈寬計數(shù)器中的數(shù)值時,輸出一個bit發(fā)送脈沖;隨后發(fā)送計數(shù)器在下一個基準(zhǔn)時鐘時被置1,開始下一輪計數(shù)和比較,依次循環(huán),直至產(chǎn)生10個bit位傳輸脈沖;
發(fā)送數(shù)據(jù)的順序控制由輸出狀態(tài)控制機(jī)執(zhí)行,輸出狀態(tài)控制機(jī)在第一個傳輸脈沖來時,將輸出數(shù)據(jù)總線拉置低電平,隨后的8個傳輸脈沖來時,依次將存儲在發(fā)送數(shù)據(jù)緩存器中的待發(fā)送數(shù)據(jù)送到數(shù)據(jù)總線上,發(fā)送順序還是從低位開始發(fā)送,在第10個傳輸脈沖來時,將數(shù)據(jù)總線電平拉高。
在本發(fā)明中,數(shù)據(jù)傳輸還是基于標(biāo)準(zhǔn)的異步串口通信數(shù)據(jù)格式,即每次數(shù)據(jù)傳輸包括一個低電平的起始位,8bit數(shù)據(jù)和一個高電平的停止位,數(shù)據(jù)從低位開始發(fā)送。不同于標(biāo)準(zhǔn)異步串口通信之處在于主設(shè)備和從設(shè)備之間只有一根數(shù)據(jù)線,不需要專門的數(shù)據(jù)發(fā)送線和數(shù)據(jù)接收線,以及額外的數(shù)據(jù)請求線和清除發(fā)送線,極大簡化了接口形式,主設(shè)備和從設(shè)備采用單總線實現(xiàn)半雙工通信。
本發(fā)明的波特率自動檢測步驟采用一種基于脈寬計數(shù)的技術(shù),具體包括以下步驟:
如果是上電之后首次通信,主設(shè)備可以向從設(shè)備發(fā)送十六進(jìn)制數(shù)據(jù)0X01。從設(shè)備的下降沿檢測模塊102檢測到數(shù)據(jù)總線上的下降沿時,開始啟動脈寬計數(shù)器104開始計數(shù),當(dāng)上升沿檢測模塊103檢測到數(shù)據(jù)總線上的上升沿時,脈寬計數(shù)器104停止計數(shù)。脈寬計數(shù)器的計數(shù)時鐘來自于電路內(nèi)部的基準(zhǔn)時鐘101,時鐘頻率一般設(shè)置為最高通信速率的10倍。當(dāng)前主機(jī)發(fā)起的串口通信數(shù)據(jù)流中起始位的脈寬即第一個下降沿和第一個上升沿之間的寬度。如果計數(shù)時鐘的周期為TO,計數(shù)器記錄數(shù)為N,那么當(dāng)前主機(jī)發(fā)起的串口通信單bit位寬為N*TO。
脈寬計數(shù)器104在上電后第一次邊沿檢測計數(shù)之后,會被邏輯控制電路鎖定,不會再被數(shù)據(jù)總線下降沿觸發(fā)計數(shù)。只有系統(tǒng)復(fù)位信號來臨或者上位機(jī)發(fā)送波特率重置命令才會使脈寬計數(shù)器復(fù)位并在下一次總線下降沿來臨時重新計數(shù)。
本發(fā)明中從設(shè)備在自動計算主設(shè)備的波特率之后就可以和主機(jī)進(jìn)行半雙工通信。從設(shè)備接收數(shù)據(jù)的步驟如下:
主設(shè)備發(fā)送一個帶起始位、8bit數(shù)據(jù)位和停止位的10比特串行數(shù)據(jù)給從設(shè)備。從設(shè)備首先檢測到起始位的下降沿信號,確認(rèn)數(shù)據(jù)的開始時刻。然后啟動接收計數(shù)器105開始計數(shù),當(dāng)該計數(shù)器的數(shù)值與脈寬計數(shù)器104存儲的數(shù)值相同時,當(dāng)前時刻可以認(rèn)為是起始位bit傳輸完成。然后接收計數(shù)器105被置位為1,開始下一輪計數(shù),一直會計數(shù)10輪,最后被復(fù)位清零。
接收計數(shù)器105是由一個16位計數(shù)器實現(xiàn)的,計數(shù)器的時鐘來自于內(nèi)部振蕩電路,時鐘頻率記為f0。接收計數(shù)器105的計數(shù)值通過異或門逐位與脈寬計數(shù)器的計數(shù)值進(jìn)行比較,當(dāng)所有位都相同時,總的比較結(jié)果邏輯為1,從而在下一個基準(zhǔn)時鐘信號來臨時通過通路選擇信號將接收計數(shù)器105的計數(shù)置成1,隨后開始下一輪計數(shù)。
接收計數(shù)器105的主要作用是在內(nèi)部對串行數(shù)據(jù)進(jìn)行同步,便于后續(xù)的數(shù)據(jù)采集。
為了保證內(nèi)部電路對串行輸入數(shù)據(jù)采樣的正確性,必須保證bit采樣時鐘和被采串行數(shù)據(jù)之間有足夠的采樣時間和保持時間。因此在本發(fā)明中,bit采樣時刻放在bit位傳輸時間段的中部。它采用了錯位比較的方法來實現(xiàn)。
該方法將脈寬計數(shù)器104的數(shù)值右移一位,然后把它和接收計數(shù)器105的計數(shù)數(shù)值進(jìn)行比較。每當(dāng)它們的值完全一樣時,會輸出一個脈沖信號,這個信號就是bit位采樣脈沖。
依據(jù)二進(jìn)制的特點可知,二進(jìn)制數(shù)右移一位,它的值變成原來的值的一半,誤差為±1,所以在接收計數(shù)器105的數(shù)值與右移一位的脈寬計數(shù)器數(shù)值相同時,說明此時刻是當(dāng)前傳輸?shù)腷it位中間時段,這時候輸出一個采樣脈沖就可以正確的采集當(dāng)前傳輸?shù)腷it位。
由于接收計數(shù)器105的周期性,錯位比較得到bit采樣信號也是周期性的,它的周期和接收計數(shù)器105的周期是一樣的,都等于當(dāng)前傳輸數(shù)據(jù)的bit位寬(N*TO),因此后續(xù)每一個采樣脈沖都對應(yīng)當(dāng)前傳輸數(shù)據(jù)的中間時段。
每次數(shù)據(jù)傳輸過程中都會產(chǎn)生10個采樣脈沖信號,該采樣脈沖信號的寬度等于基準(zhǔn)時鐘101的周期T。
在每次通信過程中,bit位采樣時鐘信號將當(dāng)前數(shù)據(jù)線上的數(shù)據(jù)依次送入一個9位的移位寄存器108。當(dāng)10次采樣信號完成之后,起始位數(shù)據(jù)已經(jīng)被移出移位寄存器108。移位寄存器108的低8位存儲的值就是本次通信過程中輸出的8bit有用數(shù)據(jù),第9位存儲的是停止位數(shù)據(jù)。
為了不阻塞下一次數(shù)據(jù)通信,在全部數(shù)據(jù)進(jìn)入移位寄存器108后,由word采樣時鐘信號將移位寄存器108中的低8位數(shù)據(jù)一次性加載到8位接收數(shù)據(jù)緩存器109中,供后續(xù)電路進(jìn)行數(shù)據(jù)處理和分析。
Word時鐘采樣信號是由一個計數(shù)周期為10的word計數(shù)器107產(chǎn)生的,它對bit采樣時鐘信號進(jìn)行計數(shù),每當(dāng)計數(shù)到10時,輸出一個word時鐘采樣信號,用于8bit數(shù)據(jù)的加載,隨后自動清零,等待下一次計數(shù)。
從設(shè)備發(fā)送數(shù)據(jù)的步驟如下:
在實際應(yīng)用中,主設(shè)備應(yīng)該和從設(shè)備應(yīng)該約定好通信協(xié)議,即從設(shè)備在收到什么通信指令后會向主設(shè)備發(fā)送數(shù)據(jù),所以本發(fā)明中從設(shè)備發(fā)送數(shù)據(jù)時,主設(shè)備應(yīng)該釋放了數(shù)據(jù)總線,等待接受來自從設(shè)備的傳輸數(shù)據(jù)。主設(shè)備接收數(shù)據(jù)的波特率應(yīng)該和上一次通信的波特率一致。
從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)時,輸出數(shù)據(jù)通過總線控制接口113的一個三態(tài)門輸出到數(shù)據(jù)總線上。這個三態(tài)門由輸出使能控制,從設(shè)備在接收數(shù)據(jù)時,三態(tài)門輸出高阻,來自主設(shè)備的數(shù)據(jù)可以通過數(shù)據(jù)總線送到內(nèi)部接收數(shù)據(jù)的移位寄存器108中。當(dāng)輸出使能有效時,待輸出數(shù)據(jù)通過三態(tài)門送到數(shù)據(jù)總線上。
此外為避免本發(fā)明的數(shù)據(jù)發(fā)送和接收通道存在沖突,發(fā)送數(shù)據(jù)通道采用單獨的控制邏輯。該控制邏輯核心是一個發(fā)送計數(shù)器110和輸出控制狀態(tài)機(jī)111。
當(dāng)內(nèi)部電路的發(fā)送數(shù)據(jù)使能有效時,發(fā)送計數(shù)器110開始計數(shù),當(dāng)計數(shù)值等于存儲于脈寬計數(shù)器104中的數(shù)值時,輸出一個bit發(fā)送時鐘。隨后發(fā)送計數(shù)器在下一個基準(zhǔn)時鐘被置1,開始下一輪計數(shù)和比較,依次循環(huán),直至產(chǎn)生10個bit位發(fā)送脈沖。
發(fā)送計數(shù)器110的時鐘來自于基準(zhǔn)時鐘101,時鐘頻率為f0。
發(fā)送數(shù)據(jù)的順序控制由輸出控制狀態(tài)機(jī)111執(zhí)行。狀態(tài)機(jī)在第一個傳輸脈沖來時,將輸出數(shù)據(jù)總線拉至低電平,隨后的8個傳輸脈沖來時,依次將存儲在電路發(fā)送緩存器112中的待發(fā)送數(shù)據(jù)通過總線接口控制113送到傳輸數(shù)據(jù)總線上,發(fā)送順序還是從低位開始發(fā)送。在第10個傳輸脈沖來時,將傳輸總線電平拉高。
在本發(fā)明中,當(dāng)主設(shè)備需要改變通信傳輸波特率時,需要先向從設(shè)備發(fā)送OXFF命令,才能再次發(fā)送OX01命令對從設(shè)備進(jìn)行波特率重新設(shè)置。
從設(shè)備收到OXFF數(shù)據(jù)之后,會啟動內(nèi)部復(fù)位電路,將脈寬計數(shù)器104復(fù)位,否則脈寬計數(shù)器104無法開始新的計數(shù),存儲的還是上一次通信波特率。
本發(fā)明是一種改進(jìn)型的異步串口通信電路,該電路采用單總線傳輸數(shù)據(jù),采用位寬計數(shù)比較技術(shù)實現(xiàn)波特率自動檢測。標(biāo)準(zhǔn)的異步串口收發(fā)機(jī)系統(tǒng)中,主設(shè)備和從設(shè)備之間需要連接四根線,分別是串口數(shù)據(jù)傳輸線(TX)、串口數(shù)據(jù)接收線(RX)、發(fā)送數(shù)據(jù)請求線(RTS)、清除發(fā)送線(CTS)。本發(fā)明中的從設(shè)備只需要一根數(shù)據(jù)線就可以和主設(shè)備進(jìn)行數(shù)據(jù)傳輸,極大的降低了通信接口的復(fù)雜度。另外標(biāo)準(zhǔn)的異步串口收發(fā)機(jī)系統(tǒng)的主從設(shè)備之間需要手動設(shè)定通信波特率,使用靈活性差?,F(xiàn)有技術(shù)發(fā)明中實現(xiàn)了異步串口通信的波特率自動檢測,但是它們都是采用軟件或硬件電路查表的方式實現(xiàn),檢測效率較低,占用資源較多。本發(fā)明中波特率自動檢測采用專用位寬計數(shù)比較技術(shù)可以快速準(zhǔn)確的自動檢測通信波特率,采用的集成電路晶體管數(shù)目少(300門左右),節(jié)約芯片成本。
上述具體實施方式只是對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)解釋,本發(fā)明并不只僅僅局限于上述實施例,本領(lǐng)域技術(shù)人員應(yīng)該明白,凡是依據(jù)上述原理及精神在本發(fā)明基礎(chǔ)上的改進(jìn)、替代,都應(yīng)在本發(fā)明的保護(hù)范圍之內(nèi)。