張 飆,周國清,楊小平,劉 源,程小輝,周 祥,劉毅龍
(1.桂林理工大學(xué) 信息科學(xué)與工程學(xué)院,廣西 桂林 541004;2.桂林理工大學(xué) 廣西空間信息與測繪重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;3.桂林理工大學(xué) 機(jī)械與控制工程學(xué)院,廣西 桂林 541004)
LED交通誘導(dǎo)屏廣泛應(yīng)用于城市道路和高速公路上,隨著人力成本增加,誘導(dǎo)屏維修成本也逐年提高,研發(fā)高可靠性、高穩(wěn)定性、低維修率的交通誘導(dǎo)屏已成為市場的必然。目前無線技術(shù)已經(jīng)在交通誘導(dǎo)屏中得到應(yīng)用[1-2],但這些應(yīng)用僅局限于采用無線技術(shù),包括 GSM,GPRS,3G,Zig-Bee等代替有線的串行通信實(shí)現(xiàn)對誘導(dǎo)屏的無線控制。分布式控制也在誘導(dǎo)屏上得以應(yīng)用,不過這些應(yīng)用是基于485通信的[3-4]。本文擬將物聯(lián)網(wǎng)中具有自組織、零費(fèi)用的無線短距ZigBee網(wǎng)絡(luò)和分布式控制技術(shù)相結(jié)合應(yīng)用于誘導(dǎo)屏,設(shè)計(jì)基于ZigBee網(wǎng)絡(luò)的分布式LED交通誘導(dǎo)屏系統(tǒng)。
常規(guī)的LED交通誘導(dǎo)屏是由單個(gè)CPU控制,所有單元模塊采用串行方式級(jí)聯(lián),一旦某個(gè)單元模塊發(fā)生故障,必然發(fā)生故障擴(kuò)散,影響其后續(xù)模塊的顯示,造成大面積顯示失效。本設(shè)計(jì)運(yùn)用分布式控制架構(gòu)將誘導(dǎo)屏劃分為N個(gè)子區(qū)域,每個(gè)子區(qū)域由獨(dú)立的CPU進(jìn)行控制,如果某個(gè)子區(qū)域發(fā)生故障,則故障只影響該子區(qū)域,其他子區(qū)域不受影響,可見分布式控制能將故障限定在子區(qū)域內(nèi),有效防止故障擴(kuò)散。各子區(qū)域分開控制后必須解決子區(qū)域中的CPU與主控CPU的數(shù)據(jù)通信問題,該問題存在有線和無線兩種解決方案。有線方式下各子控制區(qū)域中的CPU都掛在總線上,其缺點(diǎn)是:需要額外的通信電纜和總線收發(fā)器,一旦總線發(fā)生故障會(huì)造成整個(gè)顯示系統(tǒng)失效。無線方式下不使用總線可避免總線故障引發(fā)的全屏顯示失效,提高了系統(tǒng)可靠性與穩(wěn)定性,同時(shí)還能節(jié)省通信線纜成本。本設(shè)計(jì)利用物聯(lián)網(wǎng)技術(shù)中的ZigBee無線短距網(wǎng)實(shí)現(xiàn)交通誘導(dǎo)屏內(nèi)部各子區(qū)域的通信。
CC2530用于2.4GHz頻段,遵循IEEE.802.15.4標(biāo)準(zhǔn),其內(nèi)部集成高性能射頻收發(fā)器、增強(qiáng)型8051CPU、兩個(gè)多功能串口、12位ADC和21個(gè)I/O等,是美國TI公司ZigBee技術(shù)應(yīng)用的SoC解決方案,具有自組織特性,能夠自動(dòng)組建低成本ZigBee網(wǎng)絡(luò)[5],經(jīng)本項(xiàng)目試驗(yàn)測定其可靠通信距離超過60m。本設(shè)計(jì)系統(tǒng)結(jié)構(gòu)如圖1所示,設(shè)計(jì)中將LED顯示屏劃分為N個(gè)小區(qū)域,每個(gè)小區(qū)域內(nèi)包含一片CC2530,構(gòu)成一個(gè)Zig-Bee網(wǎng)絡(luò)節(jié)點(diǎn),CC2530控制16×16LED點(diǎn)陣的顯示,還負(fù)責(zé)采集溫度,濕度,并實(shí)現(xiàn)與協(xié)調(diào)器通信。協(xié)調(diào)器一方面負(fù)責(zé)與網(wǎng)內(nèi)各個(gè)ZigBee節(jié)點(diǎn)進(jìn)行通信,另一方面與主控制模塊通信以獲取顯示及控制信息。主控制模塊從遠(yuǎn)程通信模塊獲取顯示及控制信息,采集環(huán)境亮度,再經(jīng)內(nèi)部處理后下發(fā)給協(xié)調(diào)器,以實(shí)現(xiàn)LED顯示屏的顯示、控制、亮度調(diào)節(jié)等功能。遠(yuǎn)程通信模塊用串口與主控制模塊相連,負(fù)責(zé)接收來自遠(yuǎn)程控制中心的數(shù)據(jù)。遠(yuǎn)程通信模塊形式多樣,可以是光纖轉(zhuǎn)串口,也可是3G或GPRS模塊轉(zhuǎn)串口,還可能是RS485轉(zhuǎn)串口等,具體為何種形式則由實(shí)際項(xiàng)目中的交通誘導(dǎo)屏網(wǎng)絡(luò)確定。
系統(tǒng)結(jié)構(gòu)的核心是ZigBee節(jié)點(diǎn),各節(jié)點(diǎn)具有通用性,均具備終端、路由和協(xié)調(diào)器功能,具體成為何種節(jié)點(diǎn)只需軟件配置,終端節(jié)點(diǎn)沒有路由功能,路由節(jié)點(diǎn)或協(xié)調(diào)器節(jié)點(diǎn)時(shí)仍可實(shí)現(xiàn)終端節(jié)點(diǎn)的功能。由于每個(gè)ZigBee子網(wǎng)只能有一個(gè)協(xié)調(diào)器節(jié)點(diǎn),因此本項(xiàng)目除配置一個(gè)協(xié)調(diào)器節(jié)點(diǎn)外,其余節(jié)點(diǎn)均具備控制LED顯示的功能,其中1/3的節(jié)點(diǎn)設(shè)置為路由顯示節(jié)點(diǎn),2/3的節(jié)點(diǎn)設(shè)置為終端顯示節(jié)點(diǎn),該配置方式具有較多的路由節(jié)點(diǎn),使每個(gè)終端顯示節(jié)點(diǎn)都有多條路徑與協(xié)調(diào)器通信,即使某個(gè)路由節(jié)點(diǎn)失效,終端顯示節(jié)點(diǎn)仍然能通過其它路由節(jié)點(diǎn)與協(xié)調(diào)器通信,可有效避免大面積顯示失效,提高了顯示屏工作可靠性與穩(wěn)定性,減少維修頻度。但路由顯示節(jié)點(diǎn)需對其他節(jié)點(diǎn)發(fā)來的信息存儲(chǔ)、融合和轉(zhuǎn)發(fā),會(huì)使其數(shù)據(jù)吞吐量增加,不過交通誘導(dǎo)屏信息更新快速性要求不高,這樣實(shí)現(xiàn)完全可行。

圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 Diagram of system architecture
系統(tǒng)硬件的核心也是ZigBee節(jié)點(diǎn),為提高節(jié)點(diǎn)硬件電路通用性和互換性并降低印刷電路板開模成本,每個(gè)節(jié)點(diǎn)都包含插接在一起的兩塊印制板:高頻核心板和低頻底板。CC2530單獨(dú)設(shè)計(jì)成核心板,高頻核心板設(shè)計(jì)為4層印刷電路板,面積較小,可節(jié)約制板成本,且所有節(jié)點(diǎn)的高頻核心板都相同。低頻底板使用雙層印制板,且所有節(jié)點(diǎn)的低頻底板都是通用的。
本系統(tǒng)ZigBee節(jié)點(diǎn)硬件結(jié)構(gòu)如圖2所示,每個(gè)節(jié)點(diǎn)由CC2530、LED顯示控制模塊、溫濕度采集模塊、串行通信模塊及電源模塊組成。CC2530是是整個(gè)節(jié)點(diǎn)的中樞,負(fù)責(zé)建立、維護(hù)通信網(wǎng)絡(luò),實(shí)現(xiàn)無線信號(hào)傳輸、處理、轉(zhuǎn)發(fā)和控制等功能;LED顯示控制模塊用于控制16×16點(diǎn)陣LED顯示;溫濕度采集模塊采集該節(jié)點(diǎn)處的溫度和濕度;串行通信模塊用于節(jié)點(diǎn)硬件調(diào)試,對于協(xié)調(diào)器還通過串行通信模塊與主控制器通信;電源模塊負(fù)責(zé)節(jié)點(diǎn)供電。

圖2 節(jié)點(diǎn)硬件框圖Fig.2 Block diagram of node hardware
核心板電路原理圖如圖3所示。CC2530的P1.1,P1.2連接主控制模塊的串口,P1.4,P1.5用于調(diào)試實(shí)現(xiàn)上位計(jì)算機(jī)與CC2530串口通信;P2.0,P2.1分別連接溫度、濕度傳感器的數(shù)字輸出端;P0.0~P0.6用于驅(qū)動(dòng)16×16LED點(diǎn)陣。RF_P和RF_N為射頻信號(hào)輸出端,P1為天線。

圖3 核心板電路原理圖Fig.3 Schematic of core board
底板電路連接核心板與16×16LED顯示面板,核心板控制生成16×16LED點(diǎn)陣顯示時(shí)序,并讀取溫、濕度傳感器的值。底板上含有兩個(gè)串行通信插座,分別用于程序調(diào)試及與上位機(jī)通信。底板上還包含指示ZigBee網(wǎng)絡(luò)連接狀態(tài)和程序運(yùn)行的LED指示燈;系統(tǒng)供電由底板輸入,經(jīng)1117M3電壓轉(zhuǎn)換芯片獲得3.3V電壓給CC2530供電。
LED驅(qū)動(dòng)芯片采用含有7bit點(diǎn)校正功能的16通道恒流驅(qū)動(dòng)器TLC5923,該芯片可以獨(dú)立調(diào)節(jié)OUT0~OUT15通道的電流值,調(diào)節(jié)級(jí)數(shù)為128級(jí),各通道調(diào)整后的灌電流為:IOutN=IMAX×DCN/127,其中IMAX是能夠設(shè)定的最大值,DCN表明第N(N=0~15)通道輸出電流被調(diào)節(jié)在哪一級(jí)[6]。此項(xiàng)功能可以保證整個(gè)顯示屏具有均勻亮度。各通道的調(diào)節(jié)值是根據(jù)LED亮度測量值確定的,這是本文作者另一篇論文所研究的內(nèi)容,在此不再贅述。TLC5923還具有LED開路檢測和芯片溫升超限檢測功能,利用開路檢測與溫升超限檢測功能協(xié)調(diào)器可以獲知故障通道與故障驅(qū)動(dòng)器,并將故障信息傳到控制中心。16×16LED顯示控制原理如圖4所示。

圖4 16×16LED顯示控制原理圖Fig.4 Schematic of display control for 16×16LED pixel matrix
TLC5923中的MODE(9腳)置H,L電平分別選擇點(diǎn)校正數(shù)據(jù)輸入與顯示數(shù)據(jù)輸入。當(dāng)發(fā)生芯片溫升超限或LED開路故障XERR(連接在CC2530的P0.4)自動(dòng)被 TLC5923拉低,CC2530通過定時(shí)查詢P0.4腳可及時(shí)發(fā)現(xiàn)故障,并可通過P0.6腳(TLC5923SOUT腳)串行讀入開路故障信息,從而判斷出發(fā)生開路故障的通道號(hào)。
由于采用分布式控制方式,按照交通誘導(dǎo)屏為紅、綠、黃三色計(jì)算,CC2530最多控制16×16點(diǎn)陣的顯示區(qū)域,即48×48LED管,共有144片TLC5923。交通誘導(dǎo)屏信息更新快速性要求不高,經(jīng)驗(yàn)算和實(shí)際測試CC2530內(nèi)置增強(qiáng)型51內(nèi)核的速度已經(jīng)足夠,可見CC2530既能實(shí)現(xiàn)Zig-Bee通信協(xié)議又能勝任16×16LED點(diǎn)陣的顯示,這也是分布式系統(tǒng)將數(shù)據(jù)吞吐量轉(zhuǎn)換到多個(gè)CPU同時(shí)處理,從而降低單個(gè)CPU數(shù)據(jù)吞吐量優(yōu)點(diǎn)的體現(xiàn)。
主控制模塊采用ST公司推出的ARM Cortex-M3架構(gòu)的STM32F103ZET6處理器作為CPU,其一端連接協(xié)調(diào)器,另一端連接遠(yuǎn)程通信模塊,主控制模塊框圖如圖5所示。主要功能為:(1)解釋和處理誘導(dǎo)屏與遠(yuǎn)程控制中心的通信協(xié)議;(2)根據(jù)顯示內(nèi)容在片內(nèi)點(diǎn)陣字庫Flash中讀取待顯示文字的點(diǎn)陣數(shù)據(jù),并按照誘導(dǎo)屏所劃分的各個(gè)16×16LED點(diǎn)陣子區(qū)域分別打包。(3)將各子區(qū)域?qū)?yīng)的點(diǎn)陣數(shù)據(jù)包經(jīng)串行口發(fā)送給協(xié)調(diào)器。隨后協(xié)調(diào)器使用#播方式將這些數(shù)據(jù)包分別轉(zhuǎn)發(fā)給控制各子區(qū)域的終端顯示節(jié)點(diǎn)和路由顯示節(jié)點(diǎn),最后各顯示節(jié)點(diǎn)中的CC2530負(fù)責(zé)在各自的16×16LED點(diǎn)陣上顯示信息。

圖5 主控制模塊框圖Fig.5 Block diagram of master control module
本設(shè)計(jì)采用并行總線 W29C040Flash,需要使用STM32F103處理器的FSMC(靈活的靜態(tài)存儲(chǔ)控制器)。FSMC接口支持SRAM、NAND FLASH、NOR FLASH 等存儲(chǔ)器,支持8/16/32位數(shù)據(jù)寬度。FSMC總共管理1Gb外部存儲(chǔ)空間,分為4個(gè)存儲(chǔ)Bank,每個(gè)Bank又分為4個(gè)區(qū),每個(gè)區(qū)64Mb的存儲(chǔ)空間[7]。本設(shè)計(jì)使用Bank1的第4區(qū),采用8位并行數(shù)據(jù)總線,使用異步Mode1方式控制。
基于Z-stack協(xié)議棧編程雖然在一些論文中已提及,但都沒有深入研究[8-9],本文將深入探究Z-stack協(xié)議棧用戶程序設(shè)計(jì)方法。采用CC2530構(gòu)建的ZigBee無線網(wǎng)絡(luò),其軟件系統(tǒng)是建立在TI公司開發(fā)的Z-stack協(xié)議棧上的。Z-stack協(xié)議棧本質(zhì)上是ZigBee協(xié)議的具體實(shí)現(xiàn)形式,同時(shí)也是ZigBee協(xié)議和用戶之間接口。按照現(xiàn)代軟件分層設(shè)計(jì)的思想,TI在Z-stack協(xié)議棧中實(shí)現(xiàn)了ZigBee協(xié)議物理層,MAC層和網(wǎng)絡(luò)層,但實(shí)現(xiàn)代碼不公開,用戶程序則在應(yīng)用層上開發(fā),需要使用底層服務(wù)時(shí)可調(diào)用Z-stack協(xié)議棧提供的API函數(shù)。
在Z-stack協(xié)議棧中,用戶只需實(shí)現(xiàn)應(yīng)用程序框架,該框架最多可包含240個(gè)應(yīng)用程序?qū)ο螅總€(gè)應(yīng)用程序?qū)ο缶褪且粋€(gè)任務(wù),每個(gè)任務(wù)又可以響應(yīng)1個(gè)系統(tǒng)事件和15個(gè)用戶事件,可見應(yīng)用程序框架包含一個(gè)支持多任務(wù)的資源分配機(jī)制,因此Z-Stack協(xié)議棧提供一個(gè)OSAL(操作系統(tǒng)抽象層)來調(diào)度程序,OSAL實(shí)現(xiàn)了操作系統(tǒng)才具備的以多任務(wù)為核心的任務(wù)調(diào)度及系統(tǒng)資源管理。因此CC2530與常規(guī)單片機(jī)編程方式完全不同,必須通過創(chuàng)建OSAL任務(wù)來運(yùn)行應(yīng)用程序,而且用戶程序設(shè)計(jì)是通過對例程代碼修改、增刪來實(shí)現(xiàn)的[10]。
本項(xiàng)目設(shè)計(jì)的用戶任務(wù)在Z-stack協(xié)議棧中的工作流程如圖6所示,其中“系統(tǒng)初始化”由函數(shù)osal_init_system()實(shí)現(xiàn),該函數(shù)包含6個(gè)初始化函數(shù),其中任務(wù)初始化函數(shù)osalInitTasks()是用戶程序必須修改的。本設(shè)計(jì)在該函數(shù)最后增加用戶任務(wù)初始化函數(shù)SampleApp_Init(taskID),該函數(shù)內(nèi)部分配任務(wù)號(hào),初始化串行口,設(shè)置周期信息廣播地址和周期信息單播地址。周期信息廣播目標(biāo)地址為:0xFFFF,用于協(xié)調(diào)器向所有顯示節(jié)點(diǎn)廣播信息;周期信息單播地址為:0x0000,用于顯示節(jié)點(diǎn)向協(xié)調(diào)器發(fā)送信息。運(yùn)行操作系統(tǒng)由函數(shù)osal_start_system()實(shí)現(xiàn),該函數(shù)是任務(wù)系統(tǒng)輪詢函數(shù),永遠(yuǎn)不會(huì)返回,它負(fù)責(zé)查找發(fā)生的事件然后調(diào)用相應(yīng)任務(wù)對該發(fā)生事件的處理函數(shù),該函數(shù)中核心語句“events=tasksEvents[idx];”用來提取需要處理的任務(wù)事件,另一核心語句“events= (tasksArr[idx])(idx,events);”通過指針調(diào)用相應(yīng)事件的任務(wù)處理函數(shù)。如果沒有事件發(fā)生,CC2530會(huì)自動(dòng)進(jìn)入省電模式。
串口在用戶程序開發(fā)中有非常重要的作用,它是Z-stack協(xié)議棧與上位機(jī)的通信接口,本設(shè)計(jì)中,協(xié)調(diào)器通過串口與主控制模塊雙向通信;上位機(jī)通過串口實(shí)現(xiàn)顯示節(jié)點(diǎn)內(nèi)部程序調(diào)試。使用CC2530串口與普通單片機(jī)不同,需要在Z-stack協(xié)議棧中加入串口功能,使其納入OSAL統(tǒng)一管理中。

圖6 用戶任務(wù)工作流程圖Fig.6 Flow diagram for user task
串口使用前需要兩個(gè)初始化步驟:①串口初始化(設(shè)置波特率,是否使用流控制等),②登記任務(wù)號(hào),如圖7所示這兩個(gè)步驟是在用戶任務(wù)初始化函數(shù)SampleApp_Init(TaskID)進(jìn)行的。由于串口已封裝在協(xié)議棧中,節(jié)點(diǎn)向串口發(fā)送數(shù)據(jù)包只需調(diào)用函數(shù) HalUARTWrite(uint8port,uint8*buf,uint16len),其中port指串口號(hào),本設(shè)計(jì)協(xié)調(diào)器使用串口0、1,顯示節(jié)點(diǎn)只使用串口0;*buf是數(shù)組緩沖區(qū)指針,節(jié)點(diǎn)發(fā)送的數(shù)據(jù)需事先寫入這個(gè)緩沖區(qū);len指字節(jié)為單位的數(shù)據(jù)長度。串口通信幀格式可自定義為:“幀頭+地址+命令字+數(shù)據(jù)長度+數(shù)據(jù)包+校驗(yàn)+幀尾”。串口數(shù)據(jù)接收函數(shù)“MT_UartProcessZToolData(…)”根據(jù)自定義幀格式修改為有限狀態(tài)機(jī)方式接收模式,實(shí)現(xiàn)過程如圖7所示,當(dāng)正確接收幀尾后調(diào)用函數(shù)osal_msg_send(...)將數(shù)據(jù)包發(fā)送到OSAL層非常重要,調(diào)用該函數(shù)后,會(huì)產(chǎn)生觸發(fā)用戶任務(wù)的事件,響應(yīng)觸發(fā)事件時(shí),協(xié)調(diào)器可調(diào)用AF_DataRequest(…)函數(shù)把串口接收的數(shù)據(jù)包發(fā)給各個(gè)顯示節(jié)點(diǎn)。

圖7 有限狀態(tài)機(jī)實(shí)現(xiàn)串口數(shù)據(jù)幀接收Fig.7 Receiving serial data frame by FSM
協(xié)調(diào)器通過串口實(shí)現(xiàn)與主控模塊通信,還接收顯示節(jié)點(diǎn)上傳的LED故障信息和溫、濕度數(shù)據(jù),而且協(xié)調(diào)器能以廣播方式發(fā)數(shù)據(jù)包給顯示節(jié)點(diǎn),主要實(shí)現(xiàn)兩個(gè)廣播功能,第一:協(xié)調(diào)器設(shè)置各顯示節(jié)點(diǎn)采集溫、濕度或讀取LED故障信息的周期值,一經(jīng)設(shè)置顯示節(jié)點(diǎn)就按新的周期采集或讀取信息然后以單播方式上傳協(xié)調(diào)器,協(xié)調(diào)器收到信息后則上傳主控制模塊。第二:主控制模塊通過協(xié)調(diào)器獲取顯示節(jié)點(diǎn)是否正常連接在網(wǎng)絡(luò)上,這是通過發(fā)送廣播命令獲取各顯示節(jié)點(diǎn)編號(hào)實(shí)現(xiàn),每個(gè)收到該命令的顯示節(jié)點(diǎn)以單播方式發(fā)送本節(jié)點(diǎn)編號(hào)給協(xié)調(diào)器。協(xié)調(diào)器程序?qū)崿F(xiàn)流程如圖8所示。

圖8 協(xié)調(diào)器用戶軟件運(yùn)行流程圖Fig.8 Flow diagram of user software for coordinator
顯示節(jié)點(diǎn)采用單播(點(diǎn)對點(diǎn))方式定時(shí)向協(xié)調(diào)器傳送LED故障信息和溫、濕度數(shù)據(jù)。定時(shí)時(shí)間由協(xié)調(diào)器設(shè)定。單播與廣播程序代碼類似,只是目標(biāo)地址不同。各顯示節(jié)點(diǎn)要實(shí)現(xiàn)串口通信,溫、濕度檢測,LED故障信息讀取,協(xié)調(diào)器要實(shí)現(xiàn)與主控制器通信。節(jié)點(diǎn)應(yīng)用軟件運(yùn)行流程如圖9所示。由圖8和圖9可見,無論單播通信還是廣播通信都使用同一個(gè)核心處理函數(shù)AF_DataRequest(afAddrType_t*dstAddr,endPointDesc_t*srcEP,uint16cID,uint16len,uint8*buf,int8*transID,uint8options,uint8radius),單播與廣播方式由第1參數(shù)(目的地址),第3個(gè)參數(shù)(傳輸編號(hào))決定,單播時(shí)顯示節(jié)點(diǎn)發(fā)送數(shù)據(jù)到協(xié)調(diào)器,目的地址=0x0000;廣播時(shí)協(xié)調(diào)器發(fā)送信息至所有顯示節(jié)點(diǎn),目的地址=0xFFFF。傳輸編號(hào)由用戶程序定義,單播與廣播必須定義不同的傳輸編號(hào)。

圖9 顯示節(jié)點(diǎn)用戶軟件運(yùn)行流程圖Fig.9 Flow diagram of user software for display node
為節(jié)省帶寬和提高輪詢速度,遠(yuǎn)程控制中心與主控制模塊間傳輸?shù)臐h字或交通位圖不是用點(diǎn)陣表示,而是用漢字內(nèi)碼和位圖編號(hào)表示。本系統(tǒng)采用GBK漢字編碼,每個(gè)漢字包含2個(gè)字節(jié),高字節(jié)為區(qū)碼,范圍為0x81~0xFE,低節(jié)為區(qū)內(nèi)偏移碼,范圍為0x40~0x7E和0x80~0xFE。GBK編碼總共126個(gè)區(qū),每區(qū)190個(gè)漢字。點(diǎn)陣字庫是按照此編碼規(guī)則從0x8140開始逐一建立,本設(shè)計(jì)顯示的漢字為16×16點(diǎn)陣,選用臺(tái)灣華邦的512kFlash芯片W29C040,字庫從W29C040的0地址開始存放,字庫后接著存放交通上使用的位圖。主控制模塊由遠(yuǎn)程通信模塊接收到遠(yuǎn)程控制中心發(fā)出的待顯示內(nèi)容后,則根據(jù)漢字內(nèi)碼或位圖編號(hào)計(jì)算出這些漢字或位圖在Flash中存儲(chǔ)的首地址,然后讀出相應(yīng)漢字或位圖的點(diǎn)陣信息。
本文完成了基于ZigBee技術(shù)的無線分布式LED交通誘導(dǎo)屏設(shè)計(jì),整塊交通誘導(dǎo)屏被分為多個(gè)子區(qū)域。每個(gè)子區(qū)域都成為一個(gè)ZigBee節(jié)點(diǎn)由一片CC2530控制實(shí)現(xiàn)顯示、通信、檢測等功能。設(shè)計(jì)制作了具有通用性和互換性的核心板+底板結(jié)構(gòu)的節(jié)點(diǎn)硬件電路,節(jié)約了PCB板開模成本。在Z-stack協(xié)議棧應(yīng)用層編寫了基于事件處理的用戶程序,實(shí)現(xiàn)了協(xié)調(diào)器與各節(jié)點(diǎn)的單播和廣播程序,以及基于有限狀態(tài)機(jī)的串口通信程序。本文將ZigBee技術(shù)與分布式控制相結(jié)合用于交通誘導(dǎo)屏設(shè)計(jì),可將數(shù)據(jù)吞吐量分擔(dān)到多個(gè)CPU上,使整個(gè)系統(tǒng)成為多核并行處理機(jī),既能有效防止故障擴(kuò)散,又增加了交通誘導(dǎo)屏穩(wěn)定性和可靠性,還減少了維修頻度,為誘導(dǎo)屏系統(tǒng)提供了新的設(shè)計(jì)思路。經(jīng)實(shí)際運(yùn)行證實(shí):Zigbee無線網(wǎng)路可靠性高,系統(tǒng)工作穩(wěn)定,整體性能達(dá)到預(yù)期設(shè)計(jì)目標(biāo)。
[1] 黃剛.無線射頻技術(shù)在旋轉(zhuǎn)LED顯示系統(tǒng)設(shè)計(jì)應(yīng)用[J].液晶與顯示,2013,28(6):901-905.Huang G.Application and design of radio frequency technology in rotating LED display system [J].Chinese Journal of Liquid Crystals and Displays,2013,28(6):901-905.(in Chinese)
[2] 張偉,徐君鵬,王士恒.基于 GSM 控制的LED顯示控制系統(tǒng)設(shè)計(jì)[J].廣東農(nóng)業(yè)科學(xué),2010,37(8):220-221.Zhang W,Xu J P,Wang S H.Design of LED display and control system based on GSM [J].Chinese Journal of Guangdong Agricultural Sciences,2010,37(8):220-221.(in Chinese)
[3] 周燕,佘焱,馬殿光.分布式LED顯示屏控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2008,(9):70-72.Zhou Y,She Y,Ma D G.Design and implement of a distributed LED display screen system [J].Chinese Journal of Instrument Technique and Sensor,2008,(9):70-72.(in Chinese)
[4] 張飆,徐和飛,牛秦洲,等.LED光帶型交通誘導(dǎo)屏的設(shè)計(jì)[J].液晶與顯示,2009,24(1):103-104.Zhang B,Xu H F,Niu Q Z,et al.Design of LED light ribbon traffic guiding panel[J].Chinese Journal of Liquid Crystals and Displays,2009,24(1):103-104.(in Chinese)
[5] Texas Instruments.CC253xSystem-on-Chip Solution for 2.4GHzIEEE 802.15.4and ZigBee Applications User's Guide[EB/OL].[2009-04-15].http://www.ti.com.
[6] Texas Instruments.TLC5923datasheet[EB/OL].[2005-03-30].http://www.ti.com.
[7] 張洋,劉軍,嚴(yán)漢宇.原子教你玩STM32(寄存器版)[M].北京:北京航空航天大學(xué)出版社,2013.Zhang Y,Liu J,Yan H Y.Yuanzi Teach you to Learn STM32(Register Edition)[M].Beijing:Beihang University Press,2013.(in Chinese)
[8] 楊信廷,吳滔,孫傳恒,等.基于 WMSN的作物環(huán)境與長勢遠(yuǎn)程監(jiān)測系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2013,44(1):167-170.Yang X T,Wu T,Sun C H,et al.Remote monitoring system of crop environment and growing based on WMSN[J].Chinese Journal of Transactions of the Chinese Society for Agricultural Machinery,2013,44(1):167-170.(in Chinese)
[9] 樊靜,王建明.基于CC2530的博物館狀況無線監(jiān)測系統(tǒng)設(shè)計(jì)[J].電子測量技術(shù),2011,34(6):105-107.Fan J,Wang J M.Design of wireless monitoring system for environment status of museum based on CC2530 [J].Chinese Journal of Electronic Measurement Technology,2011,34(6):105-107.(in Chinese)
[10] Drew G.ZigBee Wireless Networking[M].Boston:Newnespress,2010:111-176.