耿麗微+李泉輝



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