PC機與單片機多機主從互通的實(shí)現
為了實(shí)現RS 485 的半雙工通信,必須有一個(gè)方向切換控制信號,如圖2所示。在單片機端,這個(gè)控制信號很容易獲得,引出一個(gè)I/O腳,即可在單片機程序中控制該信號的切換;但是PC機端的RS 485的切換就相對比較麻煩,這也是復位監視與讀寫(xiě)轉換電路完成的另外一個(gè)重要功能:讀寫(xiě)轉換。如果PC機要占用RS 485總線(xiàn),則發(fā)送一個(gè)特定的串行碼,該專(zhuān)用單片機接收并響應該串行碼,切換RS 485控制器,開(kāi)始占用485總線(xiàn)并發(fā)送數據,如果PC機結束發(fā)送數據,則要同時(shí)發(fā)送一個(gè)特定的串行碼,通知該專(zhuān)用單片機,進(jìn)行相應的RS 485切換。單片機及其附屬電路組成了相關(guān)的功能電路。
主單片機采用了Silicon公司的8051F020型增強型單片機。該單片機最大的優(yōu)勢是內部集成的模擬電路功能較為強大、單片機運行速度快、程序編寫(xiě)-燒寫(xiě)-仿真較為方便。
3 系統的軟件構成
軟件分為3個(gè)部分:PC機上位機程序、單片機通用程序和專(zhuān)用單片機程序。專(zhuān)用單片機的程序運行在復位監視與讀寫(xiě)轉換電路中,該程序較為簡(jiǎn)單,就是在上電后,一直按照約定的波特率和數據格式接收PC機送出的串行數據,若得到的數據符合約定的復位格式,則送出復位信號;若接收到的數據符合總線(xiàn)切換的格式,則送出相應的切換信號。PC 機上位機程序比較復雜,可以根據用戶(hù)的實(shí)際需要,編寫(xiě)相關(guān)的應用程序。在本文中,采用Delphi編寫(xiě)了應用程序,實(shí)現了對單片機群的參數設置、狀態(tài)調整、信息反饋和系統控制。
單片機通用程序分別運行在100多個(gè)單片機上,是實(shí)現系統功能的基礎。圖3為單片機程序流程圖。
單片機初始化后,接收PC機送來(lái)的初始指令,然后開(kāi)始運行主程序,執行單片機的主功能。同時(shí)開(kāi)放串行接收中斷,一旦接收到PC機發(fā)來(lái)的指令,就進(jìn)行對比判斷,如果是PC 機對自己的點(diǎn)名,則響應PC 機的回送指令,開(kāi)始占用總線(xiàn),向PC機傳送數據,結束后向PC機發(fā)送結束狀態(tài)字,結束占用總線(xiàn),回到主程序,同時(shí)等待接收串行數據。
4 結語(yǔ)
經(jīng)過(guò)大量試驗,課題組應用點(diǎn)名式總線(xiàn)控制方式,成功解決了PC機與大量單片機的雙向互通問(wèn)題,實(shí)現了100 多個(gè)單片機與主控PC 機之間的互通信,達到了設計要求。電路經(jīng)過(guò)長(cháng)時(shí)間運行,實(shí)際情況表明,該系統運行穩定、控制靈活、可靠性高,采用的點(diǎn)名式總線(xiàn)控制方式具有很好的實(shí)用價(jià)值。
評論