周 銳, 周 健
(1. 中北大學(xué) 信息與通信工程學(xué)院, 太原 030051; 2.國營781廠, 蘭州 730000)
在我國部隊(duì)中,戰(zhàn)士在進(jìn)行射擊打靶訓(xùn)練時(shí),現(xiàn)在一般仍采取傳統(tǒng)的實(shí)彈射擊訓(xùn)練方法,激光模擬訓(xùn)練器材還沒有裝備使用,實(shí)彈射擊訓(xùn)練不僅浪費(fèi)彈藥,而且危險(xiǎn)性高,組織實(shí)施比較困難。用激光射擊系統(tǒng)模擬實(shí)彈射擊,節(jié)省了彈藥的同時(shí)又能提高訓(xùn)練的安全性并獲得實(shí)彈射擊同樣的效果,大大提高戰(zhàn)士們的實(shí)際水平。利用含有激光技術(shù)、單片機(jī)技術(shù)、傳感器和微電子技術(shù)的模擬射擊訓(xùn)練系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn),對國防建設(shè)現(xiàn)代化,軍事訓(xùn)練智能化、提高部隊(duì)整體素質(zhì),以及節(jié)約國防開支都具有重要意義。
為了提高系統(tǒng)在通信過程中的性能,本系統(tǒng)在設(shè)計(jì)時(shí)采用RS485總線進(jìn)行串行數(shù)據(jù)的通信。系統(tǒng)中計(jì)算機(jī)通過調(diào)用串口控件與外部的RS232C進(jìn)行通信,RS232C與RS485總線標(biāo)準(zhǔn)間的轉(zhuǎn)換通過RS232/RS485轉(zhuǎn)換器來實(shí)現(xiàn)。各單片機(jī)與RS485總線的連接通過SN75176芯片來實(shí)現(xiàn)。
本系統(tǒng)的設(shè)計(jì)容量為12個(gè)終端和一臺控制器(計(jì)算機(jī)),2者都與RS485總線進(jìn)行連接通信,根據(jù)系統(tǒng)設(shè)計(jì)的具體要求,其總體設(shè)計(jì)框圖如圖1所示。
圖1 多路數(shù)據(jù)通信系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
RS485是一種多發(fā)送器的電路標(biāo)準(zhǔn),電路結(jié)構(gòu)是在平衡連接電纜兩端由終端電阻,在平衡電纜上掛發(fā)送器、接收器、組合收發(fā)器。在一般的RS485總線多機(jī)串行通信系統(tǒng)設(shè)計(jì)中,均采用主從式結(jié)構(gòu)。圖2所示為采用SN75176芯片和RS485總線構(gòu)成的單片機(jī)間多機(jī)通信的原理圖。
圖2 采用RS485構(gòu)成的多單片機(jī)通信原理圖
如圖2所示,在總線末端需要接一個(gè)匹配電阻,來吸收總線上的反射信號,保證正常傳輸信號干凈、無毛刺。匹配電阻的取值應(yīng)該與總線的特性阻抗相當(dāng)。
要保證通信的可靠性,必須有嚴(yán)格的通信協(xié)議。下面是本設(shè)計(jì)中涉及到的最基本的幾條協(xié)議:
(1)系統(tǒng)中從機(jī)容量最多可為255臺,分別設(shè)置其地址為00H~FEH;
(2)地址FFH是對所有從機(jī)都起作用的一條控制命令,命令各個(gè)從機(jī)可以恢復(fù)SM2=1時(shí)的狀態(tài);
(3)數(shù)據(jù)塊的長度設(shè)為16個(gè)字節(jié);
(4)主從機(jī)間的聯(lián)絡(luò)過程為:主機(jī)首先發(fā)送地址,被尋址從機(jī)返回本機(jī)地址給主機(jī),如果判斷其地址相符后,主機(jī)給其發(fā)送控制命令,該從機(jī)根據(jù)主機(jī)的命令回送主機(jī)本機(jī)的狀態(tài),如果主機(jī)判斷狀態(tài)正常,則開始發(fā)送或接收數(shù)據(jù),其第一個(gè)字節(jié)是數(shù)據(jù)塊的長度;
(5)設(shè)定主機(jī)發(fā)送的控制命令代碼為:
00:要求從機(jī)接收數(shù)據(jù)塊;
01:要求從機(jī)發(fā)送數(shù)據(jù)塊;
(6)從機(jī)狀態(tài)字的基本格式為:
D7 D6 D5 D4 D3 D2 D1 D0 ERR 0 0 0 0 0 TRDY RRDY
ERR=1,從機(jī)接收到非法命令;
TRDY=1,從機(jī)發(fā)送準(zhǔn)備就緒;
RRDY=1,從機(jī)接收準(zhǔn)備就緒。
本系統(tǒng)采用的標(biāo)準(zhǔn)是異步串行通信模式,傳輸?shù)臄?shù)據(jù)格式設(shè)置為11位,即:1位起始位、8位數(shù)據(jù)位、1位校驗(yàn)位、1位停止位。
通信協(xié)議包括3種幀格式:呼叫幀、應(yīng)答幀和數(shù)據(jù)幀。
呼叫幀是由上位機(jī)發(fā)出的,它的格式為起始字符、下位機(jī)地址和異或校驗(yàn)位。依據(jù)其功能細(xì)分為呼叫幀1和呼叫幀2,呼叫幀1用來輪詢各臺下位機(jī)的狀態(tài);呼叫幀2則用來關(guān)閉輪詢,而只與一臺下位機(jī)進(jìn)行通信,接下來上位機(jī)開始與某一臺下位機(jī)通過數(shù)據(jù)幀進(jìn)行一對一的大量數(shù)據(jù)通信。
應(yīng)答幀只能由下位機(jī)發(fā)出。當(dāng)下位機(jī)收到呼叫幀后,把本機(jī)地址和當(dāng)前狀態(tài)回發(fā)給上位機(jī)。
上下位機(jī)都能發(fā)出數(shù)據(jù)幀,這是上下位機(jī)間進(jìn)行大量數(shù)據(jù)傳輸?shù)幕靖袷健T诎l(fā)數(shù)據(jù)幀前,上位機(jī)通過呼叫幀2與某一臺下位機(jī)形成一對一的連接。
控制AT89S52單片機(jī)串行口的控制寄存器共有2個(gè):特殊功能寄存器SCON和PCON,分別用于設(shè)定4種不同的通信方式及定義波特率。它的串行口工作方式3是可變波特率的9位數(shù)據(jù)異步通信方式,發(fā)送或接收一幀數(shù)據(jù)為11位:1位起始位(0)、8位數(shù)據(jù)位、l位附加的校驗(yàn)位和1位停止位(1)。其中附加的第9位數(shù)據(jù)是可編程的,利用這一可控的第9位數(shù)據(jù),同時(shí)設(shè)置好傳輸波特率和數(shù)據(jù)傳輸格式就可以實(shí)現(xiàn)多機(jī)通信。主機(jī)與從機(jī)的通信程序流程框圖如圖3所示。其中:左圖為發(fā)送流程圖;右圖為接收流程圖。
圖3 通信程序設(shè)計(jì)流程圖
本系統(tǒng)使用Visual C++中的MScomm控件實(shí)現(xiàn)串口通信功能。MScomm是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。
(1)在建立的Project中添加了類CMSComm,打開“Project->Add to Project ->Components->and Controls-> Registered ActiveX Controls”菜單選擇Components: Microsoft Communi -cations Control version 6.0;(2)在對話框上添加MSComm控件及其ID的控制變量;(3)對串口進(jìn)行初始化,設(shè)置MSComm控件的屬性;(4)添加串口事件的消息處理函數(shù)OnComm()函數(shù),在函數(shù)中編寫數(shù)據(jù)處理代碼;(5)編寫串口發(fā)送等其它代碼;(6)關(guān)閉串口。
圖4是用Microsoft Visual Studio 2008編寫測測試程序,從圖中可以看出,系統(tǒng)達(dá)到了設(shè)計(jì)目標(biāo),基本實(shí)現(xiàn)了激光打靶數(shù)據(jù)通信的功能。后續(xù)的工作還要完善計(jì)算機(jī)上位機(jī)程序,完成激光打靶數(shù)據(jù)處理系統(tǒng)和數(shù)據(jù)庫的建立。
圖4 測試程序顯示結(jié)果
本文所述的激光打靶多路數(shù)據(jù)通信系統(tǒng)滿足了我軍部隊(duì)射擊模擬訓(xùn)練的需要。體積小,經(jīng)濟(jì)實(shí)用,完全擺脫了其他電子訓(xùn)練設(shè)備臃腫的外貌。操作方便,維護(hù)簡單,提高了部隊(duì)進(jìn)行群體射擊訓(xùn)練的效率。解決了激光打靶系統(tǒng)的連網(wǎng)問題,滿足了部隊(duì)群體訓(xùn)練的需要。
[1]馬明建,周長城.數(shù)據(jù)采集與處理技術(shù)[M].西安:西安交通大學(xué)出版社,1999.
[2]Intel Corporation.MCS51 Microcontroller Family Programmer’s Guide and Instruction Set[R].Intel Corporation ,1997.
[3]蔡美琴.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,1992.
[4]毛謙敏.單片機(jī)原理及應(yīng)用教程[M].北京:國防工業(yè)出版社,2005.
[5]周志光,劉定良.單片機(jī)技術(shù)與應(yīng)用[M].長沙:中南大學(xué)出版社,2005.
[6]M Asim Khan.PC RS422 INTERFACE,2002[EB/OL].http://wenku.baidu.com/view/0b790dd6 360cba1aa811da09.html.
[7]東方人華,李秀敏,凌宇欣.Visual C++ 6.0范例入門與提高[M].北京:清華大學(xué)出版社,2003.
[8]劉曉華.精通MFC[M].北京:電子工業(yè)出版社,2003.