摘 要 文章采用NI公司推出的Lab windows/CVI虛擬儀器軟件開發平臺,充分利用其強大的交互式C語言編程模式,實現帶有軟件握手機制的PC機和單片機之間的串行通信,可供同行參考。
【關鍵詞】Lab windows/CVI 單片機 串行通信
1 系統總體設計
單片機和PC機的串行通信采用RS-232接口,系統工作時,單片機上電完成初始化設置后,等待PC機發送詢問信號“?”(ASCII碼是3FH),單片機接收到3FH后,就通過串口向PC機發送回答信號“.”(ASCII碼是2EH),PC機收到回答信號“.”后,發送確認信號“!”(ASCII碼是21H),到此就完成了軟件握手,下面單片機開始發送數據,PC機接收并顯示數據。
2 硬件設計
系統中PC機作為上位機,單片機為下位機。單片機的時鐘振蕩頻率選擇11.059MHz。通過常用電平轉換芯片MAX232實現PC機串口和單片機串口的連接,如圖1所示。
單片機P2口接8位撥碼開關,通過撥碼開關可以設置不同的波特率,如表1所示。
在單片機上電前將撥碼開關打到相應位置完成單片機串口波特率的設定。
3 軟件設計
3.1 通信協議
通信協議設定幀格式為:1位起始位,8位數據位,1位停止位,不設奇偶校驗位。有效的通信傳輸字節只是中間的8位數據位。單片機的波特率設置由P2口內容設定,PC機的波特率由界面中的波特率選擇控件決定,二者的波特率必須保持一致。
3.2 PC機程序設計
PC機程序設計部分利用Lab windows/CVI平臺進行,使用 Lab windows/CVI首先需建立一個項目文件,包含有用戶界面文件(.uir)、C源碼文件(.c)、頭文件(.h)、3個部分。接下來調試好系統軟件以后,使用Lab windows/CVI的Distribution Kit工具將項目文件生成應用文件(.EXE)。
3.2.1 用戶界面設計
創建一個新的工程文件,在工程文件中添加一個新的用戶界面文件(.uir),在.uir文件中創建一個面板(panel)和若干控件。
面板和主要控件的屬性設置則如表2所示。
設置好以后,還需要按照下面步驟修改設置一些控件屬性:設置COMPORT控件的Label/Value屬性:向控件Label中添加COM1、COM2、COM3、COM4,相應的Value值設為1、2、3、4,數據類型為int型;設置BAUDRATE控件的Label/Value值:2400、4800、9600、19200,數據類型同樣設為int型;設置CLEAR、READ、TEXTBOX、QUIT、FLUSHOUTQ、FLUSHINQ控件的Dimmed屬性的初始值為TRUE[2]。
3.2.2 代碼修改
Lab windows/CVI提供了RS-232函數庫,可以用來實現RS-232總線通信。
其中,函數Open Com Config用于打開COM端口并且設置端口參數,其原型是int OpenComConfig (int COMPort, char deviceName[], long baudRate, int parity, int dataBits, int stopBits, int inputQueueSize, int outputQueueSize);函數Com Wrt用于向COM端口寫入指定長度數據,其原型是int ComWrt (int COMPort, char buffer[], int count);函數Com Rd Byte用于從COM端口讀入一個字節,其原型是int ComRdByte (int COMPort);函數Com Rd用于從COM端口讀入指定長度數據至緩沖器,其原型是int ComRd (int COMPort, char buffer[], int count);函數Flush InQ可清空輸入隊列,其原型是int Flush InQ (int COMPort);函數Flush OutQ可清空輸出隊列,其原型是int Flush OutQ (int COMPort)。
3.2.3 配置COM端口
程序運行后首先需要配置COM端口,選擇COM端口號和波特率后,點擊Config按鈕配置端口。若配置成功,設置CLEAR、READ、TEXTBOX、FLUSHOUTQ、FLUSHINQ有效。
為增強數據傳輸的可靠性,在發送數據時加入了延時環節。
4 結論
綜上所述,Labwindows/CVI提供的叫做函數面板的操作界面,可以對每一個函數實現交互式編程,利用它豐富的庫函數,使得源碼的鍵入量大大減少,程序語法正確率提高,工程設計的效率和可靠性大幅度增強。本系統所有程序均調試通過,數據傳輸可靠,值得推廣應用。
參考文獻
[1]求是科技.單片機通信技術與工程實踐[M].北京:人民郵電出版社,2005.
[2]宋宇峰.LabWindows/CVI逐步深入與開發實例[M].北京:機械工業出版社,2003.
作者簡介
馬妍霞(1975-),女,山東省濟寧市人。大學本科學歷。從事工作為電子通信教學方面。
作者單位
濟寧職業技術學院 山東省濟寧市 272037endprint