基于雙單片機的波特率變換器設計
在一些復雜的系統(tǒng)中,系統(tǒng)與分系統(tǒng)、分系統(tǒng)與設備等之間存在數(shù)據(jù)的傳遞問題,往往采用通信的方式來解決。由于分系統(tǒng)、沒備等通信波特率的不同,特別是一些特殊波特率設備的存在,使得系統(tǒng)中設備間的相互通信不易實現(xiàn)。例如,在一個系統(tǒng)中,上位機接收某一設備的數(shù)據(jù),如圖1所示,設備l和設備2采用的是 172.8 kbps的波特率,而上位機用VB編程,其通信波特率為115.2 kbps、128 kbps或256 kbps,等,這樣設備之間就不能相互通信,給設計帶來困難。為了解決上述問題,采用雙單片機電路,設計了波特率變換器,將接收波特率為172.8 kbps的數(shù)據(jù),轉換成波特率為115.2 kbps的輸出,從而使不同波特率設備之間的通信成為可能。
1 波特率變換電路
波特率變換電路如圖2所示。電路采用2片單片機89C5l作為電路的核心,利用單片機的UART串行口與相關設備通信。單片機u1_L.(接波特率低的設備)與波特率為115.2 kbps的設備通信,單片機U2_H(接波特率高的設備)與波特率為172.8 kbps的設備通信。Ul_I,與U2_H的通信采用并行口方式,以加快Ul_I。與U2_H之間數(shù)據(jù)傳遞的速率。U1_L與U2_H的通信可以采用中斷查詢的方式,也可以采用握手查詢的方式進行數(shù)據(jù)傳遞。
電路采用2片75176接口驅動芯片組成一個RS-422通信接口。U3和U4組成的通信接口與115.2 kbps的設備相連,U5和U6組成的通信接口與172.8 kbps的設備相連,通信接口采用中斷技術。波特率變換器工作原理如下:U1_I。從串行口收到設備的數(shù)據(jù)后,從Pl口輸出數(shù)據(jù),并通知U2_H取數(shù), U2_H取到數(shù)據(jù)后向設備發(fā)出數(shù)據(jù),同時通知Ul_I.已取走數(shù)據(jù),為U1一L下一次輸出數(shù)據(jù)做準備。當U2_H從串行口收到設備的數(shù)據(jù)后,查詢 U1_I,是否允許接收數(shù)據(jù),如允許接收數(shù)據(jù),U2_H從P1口輸出數(shù)據(jù),并通知Ul_L取數(shù),Ul_L取到數(shù)據(jù)后向設備發(fā)出數(shù)據(jù),同時通知U2_H已取走數(shù)據(jù),為U2_H下一次輸出數(shù)據(jù)做準備;如Ul_L不允許接收數(shù)據(jù),則U2_H暫緩送數(shù)。
2 波特率變換器的應用
波特率變換器在應用中,根據(jù)使用情況可以分為單向傳送和雙向傳送。兩單片機之間的數(shù)據(jù)傳遞可以采用中斷方式.也可以采用查詢方式。如采用查詢方式,編程時利用P2口的幾位作為查詢信號,實現(xiàn)單向或雙向傳送。
2.1 單向傳送
單向傳送就是通信口的數(shù)據(jù)流只向一個方向,即從Ul_L接收到的數(shù)據(jù),從U2_H發(fā)送出去,或從U2_H接收到的數(shù)據(jù),從Ul_L發(fā)送出去。用這種方式進行軟件編程比較簡單,F(xiàn)以U1_L只接收外部設備數(shù)據(jù),U2_H只向外部設備發(fā)送數(shù)據(jù),采用查詢方式為例,兩單片機之間數(shù)據(jù)傳送的流程圖如圖3所示。其中 Ul_L的P2.2作為向U2_H傳送新數(shù)據(jù)的查詢信號(U2_H的P2.5),P2.2=“0”表示有新的數(shù)據(jù),P2.2=“1”表示沒有新的數(shù)據(jù); U2_H的P2.2作為接收U1_L數(shù)據(jù)的查詢信號(U1_L的P2.5),P2.2=“O”表示可以接收新的數(shù)據(jù),P2.2=“1”表示不能接收新的數(shù)據(jù)。如果采用中斷方式,兩單片機的查詢信號更簡單,只要Ul_L查詢U2_H是否可以接收數(shù)據(jù)的信號就可以,U2_H無需查詢U1_L的查詢信號。
在一些復雜的系統(tǒng)中,系統(tǒng)與分系統(tǒng)、分系統(tǒng)與設備等之間存在數(shù)據(jù)的傳遞問題,往往采用通信的方式來解決。由于分系統(tǒng)、沒備等通信波特率的不同,特別是一些特殊波特率設備的存在,使得系統(tǒng)中設備間的相互通信不易實現(xiàn)。例如,在一個系統(tǒng)中,上位機接收某一設備的數(shù)據(jù),如圖1所示,設備l和設備2采用的是 172.8 kbps的波特率,而上位機用VB編程,其通信波特率為115.2 kbps、128 kbps或256 kbps,等,這樣設備之間就不能相互通信,給設計帶來困難。為了解決上述問題,采用雙單片機電路,設計了波特率變換器,將接收波特率為172.8 kbps的數(shù)據(jù),轉換成波特率為115.2 kbps的輸出,從而使不同波特率設備之間的通信成為可能。
1 波特率變換電路
波特率變換電路如圖2所示。電路采用2片單片機89C5l作為電路的核心,利用單片機的UART串行口與相關設備通信。單片機u1_L.(接波特率低的設備)與波特率為115.2 kbps的設備通信,單片機U2_H(接波特率高的設備)與波特率為172.8 kbps的設備通信。Ul_I,與U2_H的通信采用并行口方式,以加快Ul_I。與U2_H之間數(shù)據(jù)傳遞的速率。U1_L與U2_H的通信可以采用中斷查詢的方式,也可以采用握手查詢的方式進行數(shù)據(jù)傳遞。
電路采用2片75176接口驅動芯片組成一個RS-422通信接口。U3和U4組成的通信接口與115.2 kbps的設備相連,U5和U6組成的通信接口與172.8 kbps的設備相連,通信接口采用中斷技術。波特率變換器工作原理如下:U1_I。從串行口收到設備的數(shù)據(jù)后,從Pl口輸出數(shù)據(jù),并通知U2_H取數(shù), U2_H取到數(shù)據(jù)后向設備發(fā)出數(shù)據(jù),同時通知Ul_I.已取走數(shù)據(jù),為U1一L下一次輸出數(shù)據(jù)做準備。當U2_H從串行口收到設備的數(shù)據(jù)后,查詢 U1_I,是否允許接收數(shù)據(jù),如允許接收數(shù)據(jù),U2_H從P1口輸出數(shù)據(jù),并通知Ul_L取數(shù),Ul_L取到數(shù)據(jù)后向設備發(fā)出數(shù)據(jù),同時通知U2_H已取走數(shù)據(jù),為U2_H下一次輸出數(shù)據(jù)做準備;如Ul_L不允許接收數(shù)據(jù),則U2_H暫緩送數(shù)。
2 波特率變換器的應用
波特率變換器在應用中,根據(jù)使用情況可以分為單向傳送和雙向傳送。兩單片機之間的數(shù)據(jù)傳遞可以采用中斷方式.也可以采用查詢方式。如采用查詢方式,編程時利用P2口的幾位作為查詢信號,實現(xiàn)單向或雙向傳送。
2.1 單向傳送
單向傳送就是通信口的數(shù)據(jù)流只向一個方向,即從Ul_L接收到的數(shù)據(jù),從U2_H發(fā)送出去,或從U2_H接收到的數(shù)據(jù),從Ul_L發(fā)送出去。用這種方式進行軟件編程比較簡單。現(xiàn)以U1_L只接收外部設備數(shù)據(jù),U2_H只向外部設備發(fā)送數(shù)據(jù),采用查詢方式為例,兩單片機之間數(shù)據(jù)傳送的流程圖如圖3所示。其中 Ul_L的P2.2作為向U2_H傳送新數(shù)據(jù)的查詢信號(U2_H的P2.5),P2.2=“0”表示有新的數(shù)據(jù),P2.2=“1”表示沒有新的數(shù)據(jù); U2_H的P2.2作為接收U1_L數(shù)據(jù)的查詢信號(U1_L的P2.5),P2.2=“O”表示可以接收新的數(shù)據(jù),P2.2=“1”表示不能接收新的數(shù)據(jù)。如果采用中斷方式,兩單片機的查詢信號更簡單,只要Ul_L查詢U2_H是否可以接收數(shù)據(jù)的信號就可以,U2_H無需查詢U1_L的查詢信號。
2.2 雙向傳送
雙向傳送就是通信口可以同時接收數(shù)據(jù)和發(fā)送數(shù)據(jù),數(shù)據(jù)流是雙向的,Ul_L和U2_H既接收數(shù)據(jù)也發(fā)送數(shù)據(jù)。這種方式軟件編程比較復雜,特別是雙向傳送數(shù)據(jù)采用查詢方式時。單片機之間的查詢信號就更加復雜了,F(xiàn)以雙向查詢方式為例,兩單片機之間數(shù)據(jù)傳送的流程圖如圖4所示,U2_H的流程與U1_L一樣。其中U1_L向U2_H傳送數(shù)據(jù)時的查詢信號與單向傳送的定義一樣,U2_H的P2.3作為向U1_L傳送新數(shù)據(jù)的查詢信號(U1_L的P2.4), P2.3=“0”表示有新的數(shù)據(jù),P2.3=“l”表示沒有新的數(shù)據(jù);Ul_L的P2.3作為接收U2_H數(shù)據(jù)的查詢信號(U2_H的P2.4),P2. 3=“O”表示可以接收新的數(shù)據(jù),P2.3=“1”表示不能接收新的數(shù)據(jù)。如果采用中斷方式,查詢信號可以減少,編程可以簡化。
2.3 應用時的注意事項
兩個單片機之間的握手方式如果采用中斷,由于U2_H向外部發(fā)送數(shù)據(jù)比U1_L接收外部數(shù)據(jù)快,Ul_L向U2_H傳送數(shù)據(jù)時,無需考慮U2_H的狀態(tài),而U2_H向U1_L傳送數(shù)據(jù)時,由于U2_H接收外部數(shù)據(jù)比U1_L向外部發(fā)送數(shù)據(jù)快,U2_H必須查詢Ul_L的狀態(tài),即U1_L是否處于接收 U2_H數(shù)據(jù)的狀態(tài),否則,U2_H就不能向Ul_L傳送數(shù)據(jù)。
若作為RS_485通信接口使用,只需對圖2中的電路稍做改動,增加對75176芯片的讀寫控制,同時兩個單片機中與主通信設備相連的單片機作為主機,通過P2口的一位來協(xié)調兩個單片機是接收數(shù)據(jù)還是發(fā)送數(shù)據(jù)。
值得注意的是,該波特率變換器在不同的應用中會受到一定的限制,在使用時要注意下面幾點:①波特率很高時,要考慮單片機串行口能否實現(xiàn);②從波特率高的向波特率低的變換時,要考慮波特率低的單片機能否實現(xiàn)不丟數(shù)據(jù)的發(fā)送;③當雙向變換時,既要考慮上述情況,還有考慮程序的大小,以及執(zhí)行時間對雙向傳送數(shù)據(jù)的影響,計算兩個單片機能否實現(xiàn)不丟數(shù)據(jù)的變換,在時間上要留有余量;④在查詢時,要注意握手信號的關系,不要對同一數(shù)據(jù)產生重復讀取,以至于數(shù)據(jù)重復; ⑤波特率不同時,單片機可以選用不同的晶振頻率。
2.4 實例及源程序
相關閱讀:
- ...2015/02/09 16:48·基于雙下位機的疲勞試驗機控制系統(tǒng)設計
- ...2012/04/10 11:14·基于雙模糊空間矢量調制的直接轉矩控制
- ...2012/02/13 13:36·基于雙層滑模的艦載垂直裝填機械防擺控制
- ...2009/08/06 16:27·基于雙控制器的高壓變頻裝置測控系統(tǒng)
- ...· “芯創(chuàng)杯”首屆高校未來汽車人機交互設計大賽報名正式啟動
- ...· 探秘第二屆衛(wèi)藍山鷹“創(chuàng)新·共享”試驗技術論壇!
- ...· “2018中國半導體生態(tài)鏈大會”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂解決方案
- ...· 北京集成電路產業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機強勢出擊PCIM亞洲2017展
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發(fā)及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統(tǒng)中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術
- ...· 數(shù)據(jù)采集終端系統(tǒng)設備
- ...· 簡儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質認證和汽車系列產品計劃
- ...· 易靈思® 宣布擴充高性能 鈦金系列™ FPGA 產品 鈦金系列產品擴充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺積電 (TSMC) 16納米工藝節(jié)點流片
- ...· TI杯2019年全國大學生電子設計競賽頒獎典禮在京舉行
- ...· BlackBerry QNX虛擬機獲得全球首個汽車安全完整性等級(ASIL) ‘D’認證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車