通信程序設計上位機通信程序設計對于DOS系統,應用程序可以通過對端口的直接訪問,并結合中斷的使用來完成串口通信;而在Windows系統下,不允許直接訪問端口(Windows9x除外),也沒有中斷的概念,應用程序必須使用系統提供的API函數來完成對串口的各種操作,要高效地實現串口通信,還要運用到線程。我們先簡述Win-dows的串口通信機制,再結合線程的使用,說明在我們的系統中串口通信的實現過程。串口在Windows中被定義為一種通信資源,即一種物理或邏輯的設備,也可以看做為一種特殊的文件,因而可以用文件操作函數來訪問它,如CreateFile、ReadFile等。要實現串口通信,應用程序要完成以下的任務:(1)為指定的通信資源打開一個句柄應用程序調用CreateFile打開一個串行通信資源句柄,在調用時要指定的參數有:設備名(如COM1、COM2),是否用重疊方式(overlapped,也稱為異步方式)來訪問設備等。 (2)設置和查詢串行通信資源的配置打開一個串行通信資源句柄后,應用程序可調用GetCommState來得到串行通信資源的初始配置,并通過結構DCB(devicecontrolblock)來返回。DCB結構的成員包括串行通信的波特率、數據位,停位和校驗方式等,要修改這些參數,可以調用SetCommState函數來完成。 (3)對串行通信資源進行讀寫操作對串口的讀寫可以調用ReadFile和WriteFile來實現,讀寫操作可以是同步的,也可以是異步的,這根據設備打開的方式決定。異步方式可以使調用線程在讀寫操作沒有結束時能夠同時處理別的任務,讀串口和寫串口函數的主要代碼監視串行通信事件,并進行相應的處理應用程序可以監視一系列的串行通信事件,比如CTS信號的狀態改變。設定要監視的事件可調用SetComm-Mask,要得到當前的監視事件則執行GetComm-Mask,通常的事件值有:EV_CTS、EV_DST、EV_ERR和EV_RXCHAR等。監視事件指定后,可以調用WaitCommEvent來等待指定事件的發生,并做處理。 下位機通信程序設計下位機通信程序包括對下位機的串行口進行初始化,以及發送數據和接收數據等。當DSP收到的地址為31h,則由DSP發送數據給計算機,若DSP收到的地址為32h時,則置SLEEP位為0,等待接收數據。DSP的接收和發送功能模塊均放在其接收中斷服務程序里完成。以下給出以DSP匯編語言編寫的下位機通信部分的部分程序代碼。 變頻調速可視化開發系統所示是作者在串行通信程序基礎上開發的變頻調速可視化開發系統的界面。該軟件主要作的任務是:讀取來自變頻器的數據,處理這些數據,如:以圖形的方式直觀的顯示于計算機屏幕,查看這些數據,檢查這些數據是否是在報警限以內,決定是否發出報警,將這些數據保存于存貯介質,供以后分析使用;向變頻器發出指令,如:啟動或停機或急停機、反轉正轉、打開或關閉主電源、設置頻率大小等。 結語作者通過應用API函數,結合VC 6.0的可視化開發環境以及多線程技術,完整地編寫、調試并通過了微機與以DSP為核心的變頻調速系統之間的串行通信程序,方便地實現了對系統的控制與監視,整個系統性能穩定、運行良好、監控方便,具有很大的實用性。聲明:本文為轉載類文章,如涉及版權問題,請及時聯系我們刪除(QQ: 229085487),不便之處,敬請諒解!