新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用VB 編程語言實現(xiàn)PC機與AVR 單片機的通信

用VB 編程語言實現(xiàn)PC機與AVR 單片機的通信

作者: 時間:2013-12-09 來源:網(wǎng)絡 收藏
0  引 言
在當今,網(wǎng)絡技術越來越多地應用在各個領域,微機技術及單片機也不斷發(fā)展,因此,目前大多數(shù)小型計算機監(jiān)控系統(tǒng)都采用以PC 機和單片機構成的串行通信網(wǎng)絡來完成監(jiān)控任務。其中,單片機主要進行對數(shù)據(jù)的實時采集、處理,再通過串口將數(shù)據(jù)送入PC 機的緩沖區(qū),然后由PC 機對數(shù)據(jù)進行進一步處理,以便得到所需的圖形、圖像及實驗結果。采用VB 語言中的通信控件能夠很好地完成二者之間的通信功能。
1  系統(tǒng)簡介
本系統(tǒng)是一個小型的人體心電監(jiān)測系統(tǒng),將心電信號采出后經(jīng)過A/ D 轉換,由PC 機繪制出心電圖形,進行實時顯示,便于醫(yī)護人員觀察和診斷,系統(tǒng)原理如圖1 所示。系統(tǒng)的下位機即單片機系統(tǒng),將現(xiàn)場采集的信號經(jīng)A/ D 轉換送入系統(tǒng)上位機。系統(tǒng)上位機由一臺PC 機構成,采用Vi2sual Basic 編程,做出友好的界面風格,可實時觀察心電信號。用VB 編程語言實現(xiàn)PC機與AVR 單片機的通信
圖1  系統(tǒng)原理圖
2  MSCOMM 控件功能介紹
VB 提供了一個基本通信控件MSCOMM32.OCX ,它具備串行通信的能力,可以通過串口接收
和傳輸數(shù)據(jù)。
CommPort :端口號,用于選擇通過哪個端口進行通信。
InBufferCount :返回接收緩沖區(qū)中等待的字符數(shù),可以通過置0 來清空緩沖區(qū)。
InBufferSize :設置并返回接收緩沖區(qū)的字節(jié)數(shù)。
Settings :設置并返回波特率、奇偶校驗、數(shù)位、停止位參數(shù)。通常設置為:“9 600 , n ,8 ,1”。
PortOpen :設置并返回通訊端口的狀態(tài)(開或關) 。端口打開后,可以直接讀寫數(shù)據(jù)流。
Input :返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流。
InputLen :設置并返回Input 屬性從接收緩沖區(qū)讀取的字符數(shù)。
InputMode :設置或返回Input 屬性取回的數(shù)據(jù)的類型。
Output :往傳輸緩沖區(qū)寫數(shù)據(jù)流。
3  通信協(xié)議
1) 上位機與下位機通信的數(shù)據(jù)格式均為起始位,命令碼,幀長,信息段,校驗和,停止位。
起始位與停止位標定一次發(fā)送,起始位以前和停止位以后的數(shù)據(jù)均視為干擾信號。
幀長記錄了信息段和校驗和總共的字節(jié)數(shù)。
2) 所有的數(shù)據(jù)均按ASCII 碼(十六進制) 操作。
3) 具體定義如下
信息中的每8 位(1 字節(jié)) 作為2 個字符發(fā)送。每8 位表示成16 進制數(shù),高4 位、低4 位分
別對應一個ASCII 字符0~9 、A~F。
本協(xié)議以“:”(ASCII 值為0X3A) 開始,其次為命令碼:8 位、信息段:長度由待發(fā)數(shù)據(jù)而定、校驗和:8 位,最后以“回車”或“換行”(ASCII值分別為0X0D、0X0A) 結束。其中,校驗和的計算方法為256 - [命令碼+信息段長度] mod 256 (mod 表示求余) 。
根據(jù)功能不同設置了2 個命令碼10 (ASCII值分別為0X31 、0X30) 和11 (ASCII 值分別為0X31 、0X31) 。在起始符后即為命令碼,判斷該值,以便轉向相應的處理程序。
4  軟件實現(xiàn)
MSCOMM 控件的使用使得用戶不需要對通信底層進行操作,簡便而有效。它有事件驅動和查詢2 種通信方式,由于本系統(tǒng)只是一個小型的監(jiān)測系統(tǒng),因此,采用查詢方式即可滿足要求。放置一個定時器,參數(shù)設定為500 ms ,即每0. 5 s 檢測一次緩沖區(qū),將數(shù)據(jù)讀入。

單片機相關文章:單片機教程


單片機相關文章:單片機視頻教程


單片機相關文章:單片機工作原理


數(shù)字通信相關文章:數(shù)字通信原理


通信相關文章:通信原理



上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉