基于單片機的多機并行通訊系統
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)足各種波特率(在單片機允許的范圍內)的轉換。本文引用地址:http://dyxdggzs.com/article/173148.htm
評論