久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于89C2051單片機的熱表通訊模塊的開發

基于89C2051單片機的熱表通訊模塊的開發

作者: 時間:2012-11-03 來源:網絡 收藏

基于89C2051單片機的熱表通訊模塊的開發
圖6  信息幀一般格式
  上位機發送信息幀時,下位機全部收到上位機的信息幀,然后判斷信息幀中的地址碼,如果是自己的地址碼,則根據數據幀中的信息碼內容作出相應的反應。信息幀的長度不限(根據系統中下位機的個數以及信息碼的形式決定) ,是多個字節的。在這種通信格式中還可以用軟件的方式進行一些通信數據的校驗。
工控機與下位機通訊模塊之間的通信協議,如圖7 所示。
基于89C2051單片機的熱表通訊模塊的開發
圖7  工控機與下位機通訊模塊間的通信協議
  上位機工控機向下位機發出的信息幀中應包含地址和控制指令信息,以便下位機的通訊模塊能辨識出是否及如何應答;通訊模塊,向上位機回復的信息幀中應包含自身地址及對應控制指令的數據;同步字和結束字是完成異步通訊必須的,因此無論上位機信息幀還是下位機信息幀都不可少。具體的信息幀格式如下(括號里標注為字節數,未標出的字節數為1) :
整個收發數據的互控流程如下:
上位機:按照一定的時間發送指令給下位機;
下位機:收到信息幀后,判斷信息幀中的地址是否為本機地址,若是則將本機地址發回上位機,并根據控制字向熱表發出相應的指令,等待模擬串口中斷,將熱表數據傳給,之后轉發給上位機;反之則退出中斷程序;
上位機:根據串口引發的事件接受數據,判斷來源后存入數據庫并通過人機界面顯示。
按照上述通信協議,綜合串口模擬過程對通訊模塊(下位機) 進行編程。編寫的程序主要包括主程序和中斷程序;中斷程序有模擬串口中斷接收程序和串行中斷程序。其中主程序完成各個特殊寄存器及通信參數、格式的初始化工作,分析判斷串行中斷,接受信息向熱表發出相應的指令;模擬串口中斷程序具體完成熱表數據的接收;串行中斷程序完成對上位機發出信息幀的接收。另外,考慮到實際應用當中各種隨機干擾,在編寫程序時作了適當的糾錯處理,即通訊模塊收到上位機指令后對熱表進行操作,若在一定時間內沒有收到回應,則使程序復位。
每臺熱表對應的通訊模塊地址的標識方法如圖8所示。充分利用了該型號的硬件資源,以跳線的方式設定P1 端口各個管腳的電平作為地址標識,8個管腳不同的通斷組合可以表示不同的地址。
基于89C2051單片機的熱表通訊模塊的開發
圖8  通信模塊地址標識
通訊模塊的編程都是利用仿真器提供的環境進行模擬并調試成功的。

4  與上位機軟件接口
通過通訊模塊最終實現工控機對熱表數據的讀取還需要對上位機進行通訊接口程序的編寫。上位機通訊程序的編寫也同樣有多種方法: (1) 通過調用WINDOWS 提供的API 函數實現; (2) 采用匯編語言和C 語言混合編寫動態連接庫函數實現; (3) 利用VB 語言及其提供的串行通信控件實現。第3 種方法最簡單, 開發周期短, 經濟實用。只需在工程中添加MSCOMM控件, 然后進行相應的屬性設置, 便可完成數據的收發。但VB 中的數據收發分為二進制形式和文本形式。若發送文本, 收到的文本是ASC Ⅱ碼, 在VB6. 0 中使用的是Unicode 字符,即用2 個字符來表示1 個字符, 當發送1 個字符時單片機收到2 個字節。因此大多情況下PC 機與單片機通訊交換的是二進制數據。所以利用MSCOMM 控件來發送二進制數據時, 必須將變量聲明為Byte 形式。

參考文獻
[1 ]  胡漢才. 單片機原理及其接口技術. 北京:清華大學出版社,1993 :317 - 320.
[2 ]  李華,嚴天峰. 串行通訊軟硬件的實現方法. 電子世界,2003 (5) :31 - 33.
[3 ]  王小軍,郝迎吉,張斌. 單片機串行通信中兩個問題的討論. 現代電子技術,2002 (1) :69 - 71.


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉