基于CC2430的城市車輛限行系統研究
3 軟件設計
軟件設計分為CC2430進行無線收發部分和單片機控制以太網進行數據傳輸部分。軟件設計的難點在于射頻芯片數據的收發,下面主要介紹射頻數據收發控制以及以太網數據傳送控制,對這兩方面的操作處理做簡要分析。
3.1 射頻數據傳輸協議
電子標簽和采集單元之間的數據傳輸遵循ZigBee無線網絡傳輸協議。ZigBee協議是在IEEE 802.15.4標準基礎上建立的,工作于免授權的2.4 GHz頻段,其規定了有關組網、安全和應用軟件方面的技術標準。由一組子層構成,每層為其上層提供一組特定的服務:數據實體提供數據傳輸服務,管理實體提供全部其他服務。每個服務實體通過一個服務接入點(SAP)為上層提供服務接口,并且每個SAP提供一系列的基本服務指令來完成相應的功能,ZigBee協議棧的體系結構模型如圖6所示,IEEE 802.15.4標準定義了物理層(PHY)和介質接入控制子層(MAC);ZigBee聯盟定義了網絡層和應用層(APL)框架的設計。其中應用層框架主要包括3部分:應用支持子層(APS)、ZigBee設備對象(ZDO)和由制造商制定的應用對象。本文引用地址:http://www.czjhyjcfj.com/article/172771.htm
通過對halUARTCfg_t賦值,可以設置波特率、字符數、數據位、停止位、奇偶校驗位等。其中callBackFunc是自定義設置串口回調函數,即一旦出口有數據傳送,OSAL會自動轉到自定義的回調函數,執行自定義的操作。
3.2.2 數據接收
當有數據通過無線發送到應用層時,應用層會發送一個AF_INCOMING_MSG_CMD消息事件。
這里表示收到AF_INCOMING_MSG_CMD消息事件,然后調用收到消息事件的信息處理函數GenericApp_MessageMSGCB(MSGpkt),開始接收數據并通過調用串口HalUARTWrite(uint8 port,uint8*buf,uintl6 len)寫函數發送、接收到的數據。
3.2.3 數據發送
當串口回調函數中有數據輸入時,應用層會發送一個GENERICAPP_SEND_MSG_EVT消息事件。
調用GenericApp_SendTheMessage()數據發送函數,具體到TI/Chipcon公司所提供的ZigBee 2006協議棧中即為AF_DataRequest()函數,具體形式如下:
3.3 以太網數據傳送控制
程序采用Franklin C51語言編制,可讀性強,移植性好,開發簡易。
3.3. 1 初始化RTL8019AS
通過C51的P3.4鏈接RTL8019AS的RESDRV來進行復位操作。RSTDRV高電平有效,只要給引腳施加一個1μs以上的高電平即可。
初始化頁0、頁1相關寄存器,頁2的寄存器是只讀的,不可以設置,頁3的寄存器不是NE2000兼容的,不用設置。
(1)CR=0x21,選擇頁0的寄存器;
(2)TPSR=0x45,發送頁的起始頁地址,初始化為指向第一個發送緩沖區的頁即0x40;
(3)PSTART=0x4c,PSTOP=0x80,構造緩沖環:0x4C~0x80;
(4)BNBY=0x4c,設置指針;
(5)RCR=0xcc,設置接收配置寄存器,使用按收緩沖區,僅接收自己地址的數據包(以及廣播地址數據包)和多點播送地址包,小于64 B的包丟棄,校驗錯的數據包不接收;
(6)TCR=0xe0,設置發送配置寄存器,啟用CRC自動生成和自動校驗,工作在正常模式;
(7)DCR=0xe8,設置數據配置寄存器,使用FIFO緩存,普通模式,8位數據DMA;
(8)IMR=0x00,設置中斷屏蔽寄存器,屏蔽所有中斷;
(9)CR=0x61,選擇頁1的寄存器;
(10)CURR=0x4d,CURR是RTL8019AS寫內存的指針,指向當前正在寫的頁的下一頁,初始化時指向0x4c+1=0x4d;
(11)設置多址寄存器MAR0~MAR5,均設置為0x00;
(12)設置網卡地址寄存器PAR0~PAR5;
(13)CR=0x22,選擇頁1的寄存器,進入正常工作狀態。
3.3.2 發送幀
將待發送的數據按幀格式封裝,通過遠程DMA通道送到RTL8019AS中的發送緩存區,然后發出傳送命令,完成幀的發送。需要設置以太網目的地址、以太網源地址、協議類型,再按所設置的協議類型來設置數據段。之后啟動遠程DMA,數據寫入RTL8019AS的RAM,再啟動本地DMA,將數據發到網上。
RTL8019AS無法將整個數據包通過DMA通道一次存入FIFO,則在構造一個新的數據包之前必須先等待前一數據包發送完成。為提高發送效率,設計將12頁的發送緩存區分為兩個6頁的發送緩存區,一個用于數據包發送,另一個用于構造新的數據包,交替使用。
通過調試,利用PC機接收一個構造的ARP請求包,接收效果比較滿意。
4 結論
利用CC2430無線收發功能,結合單片機與以太網實現遠程通信,設計了一套應用于車輛識別的城市交通限行系統,該系統利用CC2430低功耗、低成本、高性能等優點實現車輛識別。利用性能優越、價格低廉的RTL8019AS以太網控制器,實現路邊采集單元與遠程計算機的信息交互。該系統主要完成車輛識別,及車輛信息發送工作。經測試,可準確識別車輛,完成出行天數統計的要求。交管部門可利用車輛車型信息進行車輛出行天數的統計,作為收取擁堵費的依據,從而實現車輛限行。
評論