丁素英,徐 剛
(1.濰坊學(xué)院,山東 濰坊 261061;2.南昌大學(xué),江西 南昌 330031)
無線數(shù)據(jù)傳送技術(shù)是當(dāng)今工業(yè)控制、計算機(jī)應(yīng)用、交通智能化等技術(shù)發(fā)展的一個熱點。本軟件借助藍(lán)牙模塊對機(jī)器人進(jìn)行無線控制。此模塊會在電腦端虛擬一個串口,通過MFC設(shè)計,利用該串口對機(jī)器人進(jìn)行控制,可以對機(jī)器人發(fā)送控制命令并能夠記錄機(jī)器人回傳的數(shù)據(jù)。軟件能夠自由選擇串口,滿足不同電腦的要求;能夠顯示已經(jīng)發(fā)送的數(shù)據(jù);顯示已接受到的數(shù)據(jù)。由于串口波特率的限制,數(shù)據(jù)通過IEEE754協(xié)議轉(zhuǎn)換為四字節(jié)。電腦端發(fā)送數(shù)據(jù)格式,采用“0xA5+命令+數(shù)據(jù)類型和讀/寫/保存+四個字節(jié)的數(shù)據(jù)+0x5A”(共8個字節(jié));電腦端接收數(shù)據(jù)格式,采用“0xA5+命令+數(shù)據(jù)類型+四個字節(jié)的數(shù)據(jù)+0x5A”(共8個字節(jié))。
1985年IEEE提出了IEEE754標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)規(guī)定基數(shù)為2,階碼E用移碼表示,尾數(shù)M用原碼表示,根據(jù)二進(jìn)制的規(guī)格化方法,數(shù)值的最高位總是1,該標(biāo)準(zhǔn)將這個1缺省存儲,使得尾數(shù)表示范圍比實際存儲的多一位。IEEE754標(biāo)準(zhǔn)中有三種形式的浮點數(shù):短浮點數(shù)、長浮點數(shù)和臨時浮點數(shù),具體格式見表1。此軟件設(shè)計采用了短浮點數(shù)據(jù)進(jìn)行傳輸。
表1 IEEE標(biāo)準(zhǔn)格式
在VC開發(fā)環(huán)境下新建一個基于對話框的MFC程序,根據(jù)需要,選擇相應(yīng)的控件。此軟件中添加了靜態(tài)文本框,EDIT box,BUTTON BOX,CHECK BOX,這幾類控件,排版布局,添加控件相應(yīng)的函數(shù)。
添加工程->Components and Controls->Registered ActiveX Controls文件夾,選擇 Microsoft Communications Controls,version 6.0。然后insert,安裝控件后,在控件欄最下面會多出一個電話一樣的控件,這就是MSCOMM串口控件,把它拖出來放到空白處即可。添加串口控件后,對選擇串口的四個按鈕添加相應(yīng)的處理函數(shù),在函數(shù)內(nèi)加入相應(yīng)串口處理程序。
以COM1為例,對應(yīng)Button1按鍵,程序代碼如下:
按照類似方式,對四個串口選擇按鈕編寫對應(yīng)函數(shù)。
在發(fā)送區(qū)域選擇操作類型、數(shù)據(jù)格式,填寫對應(yīng)命令號與數(shù)據(jù),生成一幀指令。相應(yīng)程序代碼如下:
對串口接收到的所有數(shù)據(jù)進(jìn)行處理。相應(yīng)程序代碼如下:
在電腦端建立一對模擬串口com3、com2,模擬電腦與機(jī)器人間的數(shù)據(jù)傳輸。
通過填寫發(fā)送區(qū)域,生成一幀命令,發(fā)送后,發(fā)送框顯示發(fā)送結(jié)果,串口助手受到8字節(jié)16進(jìn)制數(shù)據(jù):01為命令號,float型與讀操作組成第三個字節(jié)11,0000F642為123按照IEEE754轉(zhuǎn)換后的四字節(jié)數(shù)據(jù),命令兩端為校驗碼,如圖1所示。
圖1 數(shù)據(jù)發(fā)送檢驗
串口助手發(fā)送A501110000F6425A。軟件接收到命令號為01,顯示“1單片機(jī)接收成功”。串口助手發(fā)送A502110000F6425A。軟件接收,接收框顯示數(shù)據(jù),將123用科學(xué)技術(shù)法表示。數(shù)據(jù)接收如圖2所示。
圖2 數(shù)據(jù)接收檢測
通過串口通訊、發(fā)送數(shù)據(jù)格式處理和接收數(shù)據(jù)處理的設(shè)計,成功實現(xiàn)了軟件的設(shè)計要求,完成了軟件功能。
[1]孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.
[2]辛長安.VC++編程技術(shù)與難點剖析[M].北京:清華大學(xué)出版社,2002.
[3]吳乃陵,李海文.C++程序設(shè)計實踐教程[M].北京:高等教育出版社,2006.
[4]沈顯君,楊進(jìn)才,張勇.C++語言程序設(shè)計教程[M].2版.北京:清華大學(xué)出版社出版,2010.