耿麗微+李泉輝
摘要: 針對傳統(tǒng)的奶牛養(yǎng)殖場數(shù)字化管理系統(tǒng)開發(fā)RS232串行總線通信方式的局限性,使用由FTDI公司的通用串行總線(USB)轉(zhuǎn)TTL串口的UART模塊FT232BL實現(xiàn)奶牛養(yǎng)殖場數(shù)字化管理關(guān)鍵技術(shù)中多子系統(tǒng)與上位機的自由通信。上位機利用虛擬儀器開發(fā)工具(LabWindows/cvi)開發(fā),下位機為筆者所在研究室專為奶牛場開發(fā)的射頻讀卡器。重點論述奶牛數(shù)字化虛擬儀器測控網(wǎng)絡(luò)中USB通信設(shè)計,并給出閱讀器軟硬件和主機的軟件系統(tǒng)結(jié)構(gòu)的設(shè)計與實現(xiàn)。
關(guān)鍵詞: 奶牛;養(yǎng)殖場;數(shù)字化管理;USB-UART模塊;射頻;虛擬儀器
中圖分類號: TP277.2 文獻標志碼: A 文章編號:1002-1302(2016)03-0431-03
隨著我國科學(xué)技術(shù)水平的不斷發(fā)展,以奶牛為主體的畜牧養(yǎng)殖數(shù)字化程度不斷提高,奶牛養(yǎng)殖的數(shù)字化和信息化已成為奶牛養(yǎng)殖業(yè)發(fā)展的大勢所趨。當前,國內(nèi)大部分中小型奶牛養(yǎng)殖場主要依靠飼養(yǎng)員的觀察來獲取奶牛個體的信息及牛舍內(nèi)的相關(guān)信息,相較依托現(xiàn)代通信技術(shù)和網(wǎng)絡(luò)信息技術(shù)實現(xiàn)對所有奶牛的實時監(jiān)控管理手段已落后很多[1]。本試驗通過深入分析、細致研究,主要探討系統(tǒng)開發(fā)過程中多個測控子系統(tǒng)(如奶牛場綜合信息監(jiān)控系統(tǒng),奶牛個體信息自動化采集、身份識別和行為監(jiān)測等)與上位機連接所需的計算機外設(shè)接口的選擇問題。
我國傳統(tǒng)的奶牛場通常采取RS232串口或其他串行總線方式來實現(xiàn)數(shù)字化管理系統(tǒng)的數(shù)據(jù)采集部分,但是由于采用RS232串口通信存在接口連接復(fù)雜、傳輸速效低等不足之處,而采用通用串行總線(USB)則較好地解決以上問題。USB接口具有即插即用、安全性高、高傳輸速率等優(yōu)點,并結(jié)合現(xiàn)代數(shù)據(jù)傳輸技術(shù),實現(xiàn)與計算機之間高速安全的數(shù)據(jù)通信,解決傳統(tǒng)通信技術(shù)帶給大家的不便。因而以計算機為上位機的測控系統(tǒng)中采用FTDI公司的 FT232BL設(shè)計的USB轉(zhuǎn)TTL串口的UART模塊,作為奶牛場開發(fā)的射頻識別(RFID)系統(tǒng)的通信主控芯片[2],可以很好地解決奶牛場多個測控子系統(tǒng)與上位機的通信問題,實現(xiàn)奶牛場各種參數(shù)的實時采集。因此,本研究采用USB接口轉(zhuǎn)串口的方案與PC機進行通信,很好地解決了奶牛養(yǎng)殖場PC機串口資源需求較多的問題。
本研究主要介紹利用USB-UART橋接芯片實現(xiàn)上位機與讀卡器通信的軟硬件設(shè)計,以及根據(jù)通信協(xié)議實現(xiàn)單片機對射頻芯片操作的軟硬件設(shè)計。該系統(tǒng)上位機程序由虛擬儀器開發(fā)工具(LabWindows/cvi)開發(fā),讀卡器的開發(fā)是利用 Atmel 公司的AVR單片機系列的ATmega162單片機、Philps公司的MF RC500射頻識別讀寫器芯片、FTDI公司的 USB-UART 橋接電路模塊FT232BL、Mifare One卡等設(shè)計[3]。
1 USB接口通信協(xié)議設(shè)計
由于計算機會自動識別USB轉(zhuǎn)TTL串口的UART模塊FT232BL并為其虛擬成模擬串口,所以PC機與卡讀寫器的操作可以看作通過RS232串口連接,PC機通過規(guī)定格式的數(shù)據(jù)(或調(diào)用動態(tài)連接庫)向卡讀寫器發(fā)送命令,并接收卡讀寫器返回的數(shù)據(jù),傳送的數(shù)據(jù)為16進制。PC機為主,卡讀寫器為從,卡讀寫器始終處于應(yīng)答狀態(tài),不主動向PC機發(fā)送命令。
命令格式采用“命令頭+長度字+設(shè)備標識符+命令碼+命令內(nèi)容+校驗字”。命令頭用2BYTE用0xAADD表示;設(shè)備標志為2BYTE;命令碼用1BYTE表示;命令內(nèi)容為命令報文(可以為空);校驗字為1BYTE、從長度字取反到命令內(nèi)容的逐字節(jié)異或。例如發(fā)送AA BB 05 FA 00 00 01 03 F8表示串口初始化命令,讀卡器接收該數(shù)據(jù)后將執(zhí)行初始化串口操作波特率設(shè)置為9 600 bps。
2 讀卡器硬件設(shè)計
RFID 射頻讀寫器的硬件電路主要由電子標簽讀寫芯片、通信天線電路、處理器核心芯片(AT-MEGA162)和USB轉(zhuǎn)串口硬件電路4個部分組成。其中,與電子標簽通信的射頻信號產(chǎn)生、安全認證、信號的調(diào)制及解調(diào)和防沖突等全部由標簽讀寫芯片來完成,本研究以MF RC500作為電子標簽的讀寫芯片,F(xiàn)T232BL為上位機與微處理器通信的USB主控芯片,整個系統(tǒng)對電子標簽的讀寫操作是通過微控制器對讀寫芯片的特殊寄存器操作來完成的。因此,MF RC500可以看作微控制器與電子標簽之間信息交換的媒介,微控制器只須將特定的指令傳送給MF RC500,就可以通過讀寫器硬件電路實現(xiàn)與電子標簽的信息交互。
2.1 FT232BL硬件電路設(shè)計
讀寫器的數(shù)據(jù)是通過USB接口傳送到主機的。下位機與PC之間通信的主控芯片采用工控界中最好的FTDI公司設(shè)計的 USB轉(zhuǎn)TTL串口的UART模塊FT232BL。FT232BL提供的USB轉(zhuǎn)232串口在RS232和USB口之間很容易建立可靠的連接,其連接PCB原理如圖1所示。
FT232BL是環(huán)保無鉛產(chǎn)品,其USB端口到串行端口通信,支持RS232串行端口及RS422等的介面,其虛擬串口驅(qū)動程序(VCP)支持Windows 98及98 SE、Win 2 000、WinME、WinXP、MAC OS-8及MAC OS-9、MAC OS-X、Linux 2.4等,其USB驅(qū)動程序(D2XX)支持Win 98及98 SE、Win 2 000、WinME、WinXP 等系統(tǒng),完全兼容USB V2.0 規(guī)范,支持384 B接收緩存和128 B發(fā)送緩存。USB全速連接 12 Mb/s;USB總線直接取電,無需外接電源;支持自動握手協(xié)議;高達1 Mb/s(RS232)或者3 Mb/s(RS422/RS485)的傳輸速率;支持遠程喚醒和電源管理[4]。
2.2 主控芯片及射頻芯片硬件電路設(shè)計
該讀寫器的MCU控制核心采用AVR系列的 ATMEGA162 單片機,射頻卡讀寫芯片采用Philps公司的MF RC500。該MCU的ALE、8路外部數(shù)據(jù)/地址線以及WR和RD使其可以方便地與RC500物理引腳進行連接和通信[5],并且 ATMEGA162 的SPI接口、2個串口和3個外部中斷等豐富的硬件資源,可以很好地完成讀寫器集成設(shè)計。PCB電路原理如圖2所示。
2.3 讀寫天線硬件電路設(shè)計
本設(shè)計采用直接匹配的天線設(shè)計方式,天線電路由射頻模塊接收電路、天線和匹配電路與濾波和電阻轉(zhuǎn)換電路3個部分組成。電子標簽選擇符合ISO14443typeA接口標準的Mifare1卡,作為無源電子標簽卡,它是通過讀卡器天線(根據(jù)變壓器原理)獲得能量的。ISO14443typeA標準規(guī)定讀卡器與卡之間采用100%的ASK、Miller編碼、副載波負載調(diào)制的方式進行數(shù)據(jù)傳輸[6]。讀卡器天線設(shè)計原理如圖3所示。
2.4 讀寫電路板的制作
該讀寫器電路板采用2層設(shè)計,通過天線底層設(shè)計不封閉的屏蔽環(huán)來吸收天線線圈產(chǎn)生的電場,從而改良天線EMC[7]。圖4為該讀卡器的PCB板圖。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計主要包括PC機的軟件設(shè)計以及單片機的軟件設(shè)計2部分。PC機軟件由虛擬儀器開發(fā)工具(LabWindows/cvi)開發(fā),單片機程序的開發(fā)則利用單片機C語言開發(fā),且通過JTAG仿真調(diào)試。
3.1 PC機軟件的設(shè)計
PC機軟件由虛擬儀器開發(fā)工具LabWindows/cvi開發(fā),PC機會識別USB設(shè)備為模擬串口。所以,PC機軟件由虛擬儀器開發(fā)工具LabWindows/cvi開發(fā),全部為對標準RS23串口操作。所用到的函數(shù)包括打開及串口初始化、讀/寫以及關(guān)閉串口等,主要函數(shù)如下:
OpenComConfig (4,“COM4”,19200,0,8,1,512,512);//串口初始化與連接ComWrtByte (4,0xaa);//向單片機發(fā)送一字節(jié)數(shù)據(jù)ComRdByte (4);//接收單片機一字節(jié)數(shù)據(jù)CloseCom (4)。//關(guān)閉串口上位機。
界面及與奶牛卡片數(shù)據(jù)塊四通信結(jié)果如圖5所示。
3.2 單片機軟件的設(shè)計
單片機軟件控制程序主要包括與上位機進行UART串行通信的部分和通過對射頻模塊進行寄存器命令初始化、讀寫、中斷處理等2部分。該讀卡器的控制芯片為ATMEGA162,其有2個UART端口,其中本USB串口芯片UART0:UART1用于其他功能擴展接口,可以做成計步器的上位機,從而使該設(shè)計更加簡約。
串行通信用C語言編寫,其中接收中斷處理函數(shù)為該系統(tǒng)的核心負責(zé)接收上位機數(shù)據(jù)的校驗,以及根據(jù)命令對單片機以及射頻讀寫芯片的操作[8]。利用ATMEGA162的中斷模式實現(xiàn)串行通信程序如下:
void USART0_Init(unsigned int baud);//串口初始化
ISR(USART0_TXC_vect);//發(fā)送中斷處理
ISR(USART0_RXC_vect);//接收中斷處理
讀卡器操作函數(shù)及實現(xiàn)程序如下:
char PcdRequest(uchar req_code)//尋卡函數(shù)req_code為尋卡方式:req_code=0x52時尋天線區(qū)內(nèi)所有符合14443A標準的卡,req_code=0x26時只尋未進入休眠狀態(tài)的卡char PcdAnticoll(uchar *snr)防沖撞:尋卡成功后,通過此函數(shù)向天線區(qū)內(nèi)卡片發(fā)送防沖撞命令,無論天線區(qū)內(nèi)有幾張卡此函數(shù)只得到一張卡片的序列號Pcdselect()//選卡,則所有后續(xù)命令針對此卡PcdHalt()//命令此卡進入休眠狀態(tài),再尋未進入休眠狀態(tài)的卡,可進行其他卡片的操作snr=存放序列號(4byte)的內(nèi)存單元首地址char PcdSelect(uchar *snr)//選定一張卡void WriteRawRC(uchar Address,uchar value)//寫RC500寄存器ucahr ReadRC(uchar Address)//讀RC500寄存器等。
4 測試結(jié)果分析
為了驗證USB通信接口在測控網(wǎng)絡(luò)工作的可靠性,采用6張Mifare One卡作為身份標識節(jié)點。在河北農(nóng)業(yè)大學(xué)測控實驗室進行數(shù)據(jù)測試。把FT232BL設(shè)備與計算機連接,驅(qū)動程序安裝后,在設(shè)備管理器中會有FT232BL虛擬的COM口。采集結(jié)果如表1所示。
PC機通過射頻卡讀寫器與奶牛射頻卡通信結(jié)果表明,該設(shè)計能很好地讀取射頻卡的序列號以及卡特定存儲區(qū)塊的數(shù)據(jù)結(jié)果。該設(shè)計開發(fā)快捷、使用可靠,可以作為奶牛養(yǎng)殖場數(shù)字化管理關(guān)鍵技術(shù)研究課題中多子系統(tǒng)與上位機的通信標準模塊。
5 結(jié)論
該設(shè)計中由USB轉(zhuǎn)TTL串口的UART通信模塊FT232BL被成功地嵌入到筆者所在研究室專為奶牛場開發(fā)的射頻讀卡器當中,可以方便地實現(xiàn)虛擬儀器測控網(wǎng)絡(luò)中上位機與多下位機之間的通信,同時完成的為奶牛場設(shè)計的讀卡器具有穩(wěn)定可靠、成本低和響應(yīng)快等優(yōu)點,對奶牛場RFID系統(tǒng)的推廣具有重要意義。
參考文獻:
[1]柳平增,丁為民,汪小旵,等. 奶牛發(fā)情期自動檢測系統(tǒng)的設(shè)計[J]. 測控技術(shù),2006,25(11):48-51.
[2]孫智剛,梁衛(wèi)波. RFID技術(shù)發(fā)展趨勢預(yù)測研究[J]. 商場現(xiàn)代化,2012(22):22-24.
[3]郭建強,彭 華,王澤勇,等. MSP430系統(tǒng)與PC機通信的USB接口設(shè)計[J]. 信息技術(shù),2012(8):102-107.
[4]劉 建,武樹飛. 基于FT232BL的USB接口快速設(shè)計[J]. 艦船電子工程,2009(6):51-54.
[5]沙 超,董挺挺,王汝傳,等. 無線傳感器網(wǎng)絡(luò)硬件平臺的研究與設(shè)計[J]. 電子工程師,2006,32(5):52-55.
[6]Future technology devices international FT232BL designers guide[EB/OL]. (2006-08-16)[2014-11-05]. http://www.ftdchip. com.
[7]Philips Semiconductors. MF RC500 Highly Integrated ISO14443A Reader IC-Preliminary Product Specification Revision 2.0 CONFI-DENTIAL[M]. Austria:Philips Semiconductors Gratkom GmbH,2001.
[8]ISO/IEC 14443-4—2001 無接觸點集成電路卡傳輸協(xié)議[S]. 江蘇農(nóng)業(yè)科學(xué),2016,44(3):434-438.