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