<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 單片機在波特率變換器中的應用

單片機在波特率變換器中的應用

——
作者:北京航天動(dòng)力研究所 鄭大生 孫文英 翟麗婷 時(shí)間:2007-12-03 來(lái)源:?jiǎn)纹瑱C及嵌入式系統應用 收藏

    在一些復雜的系統中,系統與分系統、分系統與設備等之間存在數據的傳遞問(wèn)題,往往采用通信的方式來(lái)解決。由于分系統、沒(méi)備等通信波特率的不同,特別是一些特殊波特率設備的存在,使得系統中設備間的相互通信不易實(shí)現。例如,在一個(gè)系統中,上位機接收某一設備的數據,如圖1所示,設備l和設備2采用的是172.8 kbps的波特率,而上位機用VB編程,其通信波特率為115.2 kbps、128 kbps或256 kbps,等,這樣設備之間就不能相互通信,給設計帶來(lái)困難。為了解決上述問(wèn)題,采用雙電路,設計了波特率變換器,將接收波特率為172.8 kbps的數據,轉換成波特率為115.2 kbps的輸出,從而使不同波特率設備之間的通信成為可能。


1 波特率變換電路

  
波特率變換電路如圖2所示。電路采用2片89C5l作為電路的核心,利用的UART串行口與相關(guān)設備通信。單片機u1_L.(接波特率低的設備)與波特率為115.2 kbps的設備通信,單片機U2_H(接波特率高的設備)與波特率為172.8 kbps的設備通信。Ul_I,與U2_H的通信采用并行口方式,以加快Ul_I。與U2_H之間數據傳遞的速率。U1_L與U2_H的通信可以采用中斷查詢(xún)的方式,也可以采用握手查詢(xún)的方式進(jìn)行數據傳遞。


{{分頁(yè)}}    電路采用2片75176接口驅動(dòng)芯片組成一個(gè)RS-422通信接口。U3和U4組成的通信接口與115.2 kbps的設備相連,U5和U6組成的通信接口與172.8 kbps的設備相連,通信接口采用中斷技術(shù)。波特率變換器工作原理如下:U1_I。從串行口收到設備的數據后,從Pl口輸出數據,并通知U2_H取數,U2_H取到數據后向設備發(fā)出數據,同時(shí)通知Ul_I.已取走數據,為U1一L下一次輸出數據做準備。當U2_H從串行口收到設備的數據后,查詢(xún)U1_I,是否允許接收數據,如允許接收數據,U2_H從P1口輸出數據,并通知Ul_L取數,Ul_L取到數據后向設備發(fā)出數據,同時(shí)通知U2_H已取走數據,為U2_H下一次輸出數據做準備;如Ul_L不允許接收數據,則U2_H暫緩送數。


2  波特率變換器的應用

    波特率變換器在應用中,根據使用情況可以分為單向傳送和雙向傳送。兩單片機之間的數據傳遞可以采用中斷方式.也可以采用查詢(xún)方式。如采用查詢(xún)方式,編程時(shí)利用P2口的幾位作為查詢(xún)信號,實(shí)現單向或雙向傳送。

2.1  單向傳送


    單向傳送就是通信口的數據流只向一個(gè)方向,即從Ul_L接收到的數據,從U2_H發(fā)送出去,或從U2_H接收到的數據,從Ul_L發(fā)送出去。用這種方式進(jìn)行軟件編程比較簡(jiǎn)單?,F以U1_L只接收外部設備數據,U2_H只向外部設備發(fā)送數據,采用查詢(xún)方式為例,兩單片機之間數據傳送的流程圖如圖3所示。其中Ul_L的P2.2作為向U2_H傳送新數據的查詢(xún)信號(U2_H的P2.5),P2.2=“0”表示有新的數據,P2.2=“1”表示沒(méi)有新的數據;U2_H的P2.2作為接收U1_L數據的查詢(xún)信號(U1_L的P2.5),P2.2=“O”表示可以接收新的數據,P2.2=“1”表示不能接收新的數據。如果采用中斷方式,兩單片機的查詢(xún)信號更簡(jiǎn)單,只要Ul_L查詢(xún)U2_H是否可以接收數據的信號就可以,U2_H無(wú)需查詢(xún)U1_L的查詢(xún)信號。


2.2  雙向傳送

    雙向傳送就是通信口可以同時(shí)接收數據和發(fā)送數據,數據流是雙向的,Ul_L和U2_H既接收數據也發(fā)送數據。這種方式軟件編程比較復雜,特別是雙向傳送數據采用查詢(xún)方式時(shí)。單片機之間的查詢(xún)信號就更加復雜了?,F以雙向查詢(xún)方式為例,兩單片機之間數據傳送的流程圖如圖4所示,U2_H的流程與U1_L一樣。其中U1_L向U2_H傳送數據時(shí)的查詢(xún)信號與單向傳送的定義一樣,U2_H的P2.3作為向U1_L傳送新數據的查詢(xún)信號(U1_L的P2.4),P2.3=“0”表示有新的數據,P2.3=“l(fā)”表示沒(méi)有新的數據;Ul_L的P2.3作為接收U2_H數據的查詢(xún)信號(U2_H的P2.4),P2.3=“O”表示可以接收新的數據,P2.3=“1”表示不能接收新的數據。如果采用中斷方式,查詢(xún)信號可以減少,編程可以簡(jiǎn)化。{{分頁(yè)}}


2.3  應用時(shí)的注意事項

    兩個(gè)單片機之間的握手方式如果采用中斷,由于U2_H向外部發(fā)送數據比U1_L接收外部數據快,Ul_L向U2_H傳送數據時(shí),無(wú)需考慮U2_H的狀態(tài),而U2_H向U1_L傳送數據時(shí),由于U2_H接收外部數據比U1_L向外部發(fā)送數據快,U2_H必須查詢(xún)Ul_L的狀態(tài),即U1_L是否處于接收U2_H數據的狀態(tài),否則,U2_H就不能向Ul_L傳送數據。

    若作為RS_485通信接口使用,只需對圖2中的電路稍做改動(dòng),增加對75176芯片的讀寫(xiě)控制,同時(shí)兩個(gè)單片機中與主通信設備相連的單片機作為主機,通過(guò)P2口的一位來(lái)協(xié)調兩個(gè)單片機是接收數據還是發(fā)送數據。

    值得注意的是,該波特率變換器在不同的應用中會(huì )受到一定的限制,在使用時(shí)要注意下面幾點(diǎn):①波特率很高時(shí),要考慮單片機串行口能否實(shí)現;②從波特率高的向波特率低的變換時(shí),要考慮波特率低的單片機能否實(shí)現不丟數據的發(fā)送;③當雙向變換時(shí),既要考慮上述情況,還有考慮程序的大小,以及執行時(shí)間對雙向傳送數據的影響,計算兩個(gè)單片機能否實(shí)現不丟數據的變換,在時(shí)間上要留有余量;④在查詢(xún)時(shí),要注意握手信號的關(guān)系,不要對同一數據產(chǎn)生重復讀取,以至于數據重復;⑤波特率不同時(shí),單片機可以選用不同的晶振頻率。


2.4  實(shí)例及源程序


    在實(shí)際使用中若碰到如圖1所示的情況,需要波特率變換器將坡特率為172.8kbps的通信數據轉換成波特率為115.2kbps,再向上位機傳送。實(shí)際使用的電路如圖2所示。在該實(shí)例中,為了防止局部時(shí)刻接收數據比發(fā)送快而丟失數據,再U2_H單片機的程序中,加入了8個(gè)數據區作為接收數據存放緩沖區。

 

3   結論


    通過(guò)長(cháng)時(shí)間的通信實(shí)驗和實(shí)際應用,設計的波特率變換器方案可行,通信可靠,沒(méi)有出現數據丟失的情況。在一些系統中,由于通信波特率特殊,在設備之間通信存在波特率不匹配時(shí),通過(guò)波特率變換器,可以實(shí)現不同波特率設備之間的通信。通過(guò)更改單片機的晶頻振率,可以滿(mǎn)足各種波特率(在單片機允許的范圍內)的轉換。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>