新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PC機與單片機多機實時通信的設(shè)計與實現(xiàn)

PC機與單片機多機實時通信的設(shè)計與實現(xiàn)

作者: 時間:2012-02-06 來源:網(wǎng)絡(luò) 收藏

VB可以發(fā)送文本數(shù)據(jù)和二進制數(shù)據(jù)。發(fā)送二進制數(shù)據(jù)時,必須傳遞一個包含字節(jié)數(shù)組的 Variant到 Output 屬性。接收二進制數(shù)據(jù)時,Input屬性通過一個Variant返回一二進制數(shù)據(jù)的數(shù)組。為便于命令的表達,本系統(tǒng)采用二進制格式的數(shù)據(jù)。

為更深入了解該控件,這里對接收數(shù)據(jù)緩沖區(qū)進行了分析,該控件開辟的接收數(shù)據(jù)緩沖區(qū)類似一個隊列,Windows95低層驅(qū)動程序負責(zé)將接收到的數(shù)據(jù)填入隊列尾部,同時修改尾指針,當(dāng)OnComm事件發(fā)生后用Input讀取InputLen長度個字節(jié)后,將隊列頭指針后移InputLen位??梢园堰@個緩沖區(qū)開得大一點,這樣即使暫時來不及處理也不會丟失數(shù)據(jù)。接收數(shù)據(jù)緩沖區(qū)數(shù)據(jù)結(jié)構(gòu)示意圖如圖3所示。

3 多機通信的實現(xiàn)

89C51單片機的串行口工作方式3可實現(xiàn)多機通信。接收時,若SM2=1,表示置多機通信功能位,這時出現(xiàn)兩種可能情況:接收到第9位數(shù)據(jù)為1時,數(shù)據(jù)才裝入SBUF,并置RI=1向CPU發(fā)出中斷請求;如果接收到第9位數(shù)據(jù)為0,則不產(chǎn)生中斷標(biāo)志,信息將拋棄。若SM2=0,則接收到的第9位數(shù)據(jù)不論是0還是1都產(chǎn)生RI=1中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUF中。根據(jù)這個功能,可實現(xiàn)多個 89C51應(yīng)用系統(tǒng)的串行通信。

機定時中斷服務(wù)程序框圖

多機通信過程安排如下:使所有從機的SM2位置1,處于只接收地址幀的狀態(tài);主機發(fā)送一幀地址信息,其中包含8位地址,第9位為地址、數(shù)據(jù)標(biāo)志位,第9位置1表示發(fā)送的是地址;從機接收到地址幀后 ,各自將所接收的地址與本從機的地址相比較,對于地址相符的從機,使SM2清0以接收主機隨后發(fā)來的信息,對于地址不相符的從機,仍保持SM2=1狀態(tài),對主機隨后發(fā)送的數(shù)據(jù)不予理睬,直至發(fā)送新的地址幀;主機發(fā)送控制指令與數(shù)據(jù),給被尋址的從機數(shù)據(jù)幀的第9位置0,表示發(fā)送的是數(shù)據(jù)。

單片機程序采用PLM51語言設(shè)計,主單片機定時中斷服務(wù)程序框圖如圖4所示。主單片機串行口接收和發(fā)送中段服務(wù)程序框圖如圖5所示。主單片機串行口接收中斷服務(wù)程序如圖6所示。從單片機串行口接收和發(fā)送中段服務(wù)程序框圖如圖7所示。主單片機在主程序中以查詢方式將各從機送來的數(shù)據(jù)從內(nèi)存中讀出后順序發(fā)送給上位PC機。程序清單略。


從實際使用來看,本系統(tǒng)具有較高的性價比,且穩(wěn)定可靠,稍加改進即可用于自動化測量和實時控制系統(tǒng)的數(shù)據(jù)通信。

參考文獻

1 何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù).北京:北京航天航空大學(xué)出版社,1990.1

2 陳功富,韓賢東.計算機網(wǎng)設(shè)計與實現(xiàn).北京:人民郵電出版社,1994.10


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉