基于Zigbee的無(wú)線(xiàn)投票表決器基站設計思路
摘 要:設計了一款以ARM7 芯片AT91SAM7X256 為核心,μC/OS-II 為操作系統的基于Zigbee 技術(shù)無(wú)線(xiàn)投票基站。該基站用于連接Zigbee 網(wǎng)絡(luò )和以太網(wǎng)。實(shí)現了無(wú)線(xiàn)投票表決器遠程監控和多會(huì )議室同時(shí)投票功能。主要分析了該基站的軟件設計,介紹了基站如何建立無(wú)線(xiàn)投票表決器網(wǎng)絡(luò ),收集表決器的投票情況,接受遠程監控訪(fǎng)問(wèn)的過(guò)程。并且對其硬件平臺的結構做了相應描述。
本文引用地址:http://dyxdggzs.com/article/153811.htm1 引言
投票表決器在選舉,會(huì )議,教學(xué),娛樂(lè )節目中得到大量的使用?,F行的無(wú)線(xiàn)表決系統采用單一的無(wú)線(xiàn)網(wǎng)絡(luò ),使無(wú)線(xiàn)終端設備與上位機進(jìn)行通信。由于無(wú)線(xiàn)網(wǎng)絡(luò )存在傳輸距離有限,對障礙物穿透性較差等問(wèn)題,無(wú)法實(shí)現遠程監控和多會(huì )議室同時(shí)投票等問(wèn)題。本文利用Zigbee 技術(shù)具有低功耗,使用頻段免費和以太網(wǎng)具有傳輸遠,傳輸速率快等特點(diǎn),將二者相結合,設計了一款無(wú)線(xiàn)投票表決器基站。實(shí)現了無(wú)線(xiàn)投票表決器遠程監控和多會(huì )議室同時(shí)投票功能。
2 系統概述
整個(gè)無(wú)線(xiàn)投票表決器系統,由監控中心,基站,表決器組成,如圖1 所示?;炯茸鳛檫h程監控中心與無(wú)線(xiàn)投票表決器設備通信的樞紐,并且還作為無(wú)線(xiàn)投票表決器網(wǎng)絡(luò )中的協(xié)調器,維護和管理整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò )?;臼占魍镀北頉Q器的投票情況,接受遠程監控中心的指令和定時(shí)訪(fǎng)問(wèn)。
圖1 無(wú)線(xiàn)投票表決器系統整體結構
3 硬件設計
基站硬件結構如圖2 所示,由ARM7 處理器AT91SAM7X256、無(wú)線(xiàn)模塊、以太網(wǎng)模塊,存儲模塊,電源模塊,和顯示模塊組成。
圖2 硬件整體結構
其中AT91SAM7X256 作為整個(gè)基站的主控芯片,由Atmel 公司出品,它集成了ARM7TDMI 處理器,片內256KB Flash 和64KB SRAM,還包括了USART、SPI、CAN 控制器、Ethernet 網(wǎng)口等外圍設備。
無(wú)線(xiàn)模塊采用CC2520 芯片。CC2520 是由TI 公司推出的第二代基于Zigbee/IEEE802.15.4 協(xié)議的收發(fā)芯片。豐富的硬件支持幀處理,數據緩存,數據加密,CCA 等操作。CC2520 通過(guò)SPI 接口與AT91SAM7X256 實(shí)現通信。AT91SAM7X256 分別通過(guò)/CSN 引腳和VREG_EN 引腳對CC2520 進(jìn)行片選和使能,GPIO4 引腳為AT91SAM7X256 提供接收數據幀起始信號和發(fā)送數據幀結束信號。
以太網(wǎng)模塊采用DM9161 芯片,DM9161 是Davicom 公司推出的能實(shí)現全部10M/100M 以太網(wǎng)物理功能的低功耗高性能物理層收發(fā)器。
4 軟件設計
圖3 軟件整體結構。
軟件整體結構框圖如圖3 所示。本基站采用μC/OS-II 操作系統,并在此操作系統上完成基于TCP/IP協(xié)議的LwIP 協(xié)議棧和基于Zigbee 協(xié)議的msstatePAN協(xié)議棧的移植,以及以太網(wǎng)網(wǎng)卡驅動(dòng)程序,無(wú)線(xiàn)收發(fā)芯片驅動(dòng)程序,應用程序的編寫(xiě)工作[3,4].下面將詳細對驅動(dòng)程序和應用程序進(jìn)行詳細的說(shuō)明。
4.1 以太網(wǎng)網(wǎng)卡驅動(dòng)
由EMAC_INIT()函數完成對EMAC 的初始化設置,其中包括對EMAC 操作模式、MII 接口和PHY進(jìn)行配置,設置發(fā)送和接收緩沖區描述符[5].MII 接口是IEEE-802.3 定義的以太網(wǎng)行業(yè)標準,用于 FastEthernet MAC-block 與各種類(lèi)型的PHY 連接[6]. 它包括一個(gè)數據接口,以及一個(gè)MAC 和PHY 之間的管理接口。在PHY 上電后,先對DM9161 進(jìn)行一次軟件復位操作,待軟件復位結束后使EMAC 和PHY 各自進(jìn)行初始化設置,并使能EMAC 和PHY 接口,然后實(shí)現自動(dòng)協(xié)商過(guò)程,在自動(dòng)協(xié)商過(guò)程中,依靠MDIO接口是EMAC 和PHY 進(jìn)行通訊,使二者配置成相同的速度和雙工模式。最后設置EMAC 地址并完成接收和發(fā)送緩沖區標識符的初始化工作,使得每個(gè)描述符指向正確的緩沖地址并將描述符首地址寫(xiě)入隊列指針寄存器。EMAC 的數據包讀取和數據包傳送分別由EMACReadPacke()和EMACSendPacket()函數來(lái)完成,其中為了保證獲得正確的數據包讀取位置在讀取數據包之前必需先調用GetInputPacketLen()函數獲得數據包的長(cháng)度。
4.2 Zigbee 收發(fā)芯片CC2520 驅動(dòng)
由初始化模塊,數據發(fā)送模塊和數據接收模塊組成。通過(guò)初始化模塊對CC2520 進(jìn)行初始化配置。其中包括對CC2520 進(jìn)行啟動(dòng),設置網(wǎng)絡(luò )頻道號,發(fā)射功率,自動(dòng)CRC 校驗,將GPIO4 管腳配置成用來(lái)接收SFD 幀起始信號。
發(fā)射模塊完成數據的發(fā)送任務(wù)。下面程序為數據發(fā)送過(guò)程。
先清除發(fā)送緩沖區,再將待發(fā)數據包寫(xiě)入發(fā)送緩沖區內并進(jìn)入待發(fā)狀態(tài),然后根據GPIO4 管腳信號判斷數據是否發(fā)送完畢,若未發(fā)送完畢繼續等待,若發(fā)送完畢清楚SFD 標志位,最后使CC2520 進(jìn)入空閑狀態(tài)。
接收模塊完成數據的接收任務(wù)。當檢測到CC2520的GPIO4 管腳的SFD 信號后,產(chǎn)生中斷,進(jìn)入到接收中斷服務(wù)程序。接收中斷服務(wù)程序與發(fā)送程序類(lèi)似,這里不再一一列出。
評論