王海燕
(上海電力學(xué)院電力與自動化工程學(xué)院,上海 200090)
隨著高科技和信息化的迅速發(fā)展,信息共享程度的不斷提高,以及信息共享方式的多元化,人們的日常生活變得更加舒適和便捷.傳統(tǒng)的Web服務(wù)器采用RS232,RS485,CAN總線等有線方式采集數(shù)據(jù),并通過網(wǎng)頁發(fā)布信息,但隨著無線通信技術(shù)的發(fā)展,以及基于互聯(lián)網(wǎng)技術(shù)的無線嵌入式系統(tǒng)的廣泛應(yīng)用,人們的生產(chǎn)和生活將會發(fā)生深遠(yuǎn)的變革.無線方式能消除傳統(tǒng)Web服務(wù)器的走線和結(jié)構(gòu)布局等限制,使之更方便接入Internet[1,2].本文設(shè)計的基于 ARM 的無線嵌入式Web服務(wù)器,通過無線方式實現(xiàn)對接入Internet的智能設(shè)備的有效管理和控制,可以廣泛應(yīng)用到國民經(jīng)濟(jì)的各個領(lǐng)域,如工業(yè)數(shù)據(jù)采集系統(tǒng)、車輛監(jiān)控、無線抄表、無線遙控、生物信號采集等.
本文設(shè)計的基于ARM的無線嵌入式Web服務(wù)器通過無線收發(fā)芯片nRF905將嵌入式Web服務(wù)器與無線智能設(shè)備連接,實現(xiàn)數(shù)據(jù)的采集、控制以及信息的發(fā)送.具體的系統(tǒng)結(jié)構(gòu)如圖1所示.
遠(yuǎn)程用戶通過Internet登錄嵌入式Web服務(wù)器,發(fā)布采集或控制智能設(shè)備命令.執(zhí)行采集數(shù)據(jù)功能時,ARM 微控制器 S3C2410[3]接收來自Web頁面的數(shù)據(jù)采集指令后啟動無線收發(fā)芯片nRF905,接收周圍無線智能設(shè)備(與nRF905工作在相同的無線頻段)發(fā)送的數(shù)據(jù),并進(jìn)行緩存,通過動態(tài)網(wǎng)頁技術(shù)和Web頁面將這些數(shù)據(jù)展示給遠(yuǎn)程用戶;執(zhí)行控制功能時,用戶通過Web頁面發(fā)布相關(guān)指令,S3C2410通過Internet獲取指令信息,然后交給無線收發(fā)芯片nRF905進(jìn)行發(fā)送,以實現(xiàn)對設(shè)備的控制.無線智能設(shè)備和嵌入式設(shè)備上都配有nRF905無線收發(fā)模塊,接收到指令后做出響應(yīng),而無線智能設(shè)備則可通過無線嵌入式Web服務(wù)器接入Internet.
圖1 系統(tǒng)結(jié)構(gòu)示意
無線嵌入式Web服務(wù)器分為無線收發(fā)模塊和網(wǎng)絡(luò)接入模塊兩個部分,均由S3C2410控制.
無線收發(fā)模塊負(fù)責(zé)與智能設(shè)備進(jìn)行通信,主要由ARM微控制器S3C2410和無線收發(fā)芯片nRF905[4,5]構(gòu)成,兩者接口如圖 2 所示.
圖2 S3C2410與nRF905的連接
MCU采用三星公司生產(chǎn)的S3C2410微控制器,它是基于ARM920T內(nèi)核的32位RISC CPU,采用5級指令流水線,運行時的時鐘頻率最高可以達(dá)到203 MHz.片內(nèi)主要有SDRAM控制器,3通道的UART,4通道的DMA,4個具有PWM功能的計時器和1個內(nèi)部時鐘,8通道10位的ADC,以及觸摸屏接口和I2C總線接口等,特別是所具有的MMU功能,非常適合移植Linux操作系統(tǒng),具有低功耗和高性能的特點[4].
nRF905是挪威Nordic公司推出的一款微功率無線收發(fā)芯片.其工作電壓為1.9~3.6 V,采用32引腳QFN封裝,是真正的單片UHF無線收發(fā)芯片.它集成了高頻發(fā)射、高頻接收、頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器和調(diào)制器等,性能優(yōu)異、功耗低、使用方便.使用SPI接口與微控制器通信,配置非常方便,且其功耗很低,以10 dBm的輸出功率發(fā)射時電流只有11 mA,工作于接收模式時的電流為12.5 mA.此外,內(nèi)設(shè)空閑模式與關(guān)機(jī)模式,易于實現(xiàn)節(jié)能.
nRF905的工作模式由發(fā)射/接收使能端口TRX_CE,power down,模式端口 PWR_UP,模式選擇端口TX_EN這3種模式控制端的電平輸入決定.具體工作模式和電平輸入見表1.
表1 nRF905的工作模式
系統(tǒng)的無線收發(fā)過程可分為發(fā)送流程和接收流程兩部分.發(fā)送流程又分為以下5個步驟.
(1)當(dāng)微控制器S3C2410有數(shù)據(jù)要發(fā)送時,通過SPI接口,按時序?qū)⒔邮諜C(jī)的地址和要發(fā)送的數(shù)據(jù)傳送給nRF905,SPI接口的速率在通信協(xié)議和器件配置時確定;
(2)將微控制器S3C2410的引腳TRX_CE和TX_EN置高,激發(fā)nRF905的Shock Burst TM發(fā)送模式;
(3)自動開啟nRF905的射頻寄存器,將數(shù)據(jù)打包并發(fā)送完成后,再將數(shù)據(jù)準(zhǔn)備引腳置高;
(4)AUTO_RETRAN的引腳被置高,nRF905不斷重發(fā),直到TRX_CE的引腳被置低;
(5)當(dāng)TRX_CE的引腳被置低、nRF905的發(fā)送過程完成后,系統(tǒng)自動進(jìn)入空閑模式.
由于只有在前一個數(shù)據(jù)包被發(fā)送完畢后,nRF905才能接收下一個發(fā)送數(shù)據(jù)包,因此使得Shock Burst TM工作模式能夠保證一旦開始發(fā)送數(shù)據(jù),無論TRX_CE和TX_EN引腳是高還是低,發(fā)送過程都會被處理完.
系統(tǒng)的接收流程可分為以下3個步驟.
(1)當(dāng) TRX_CE為高、TX_EN為低時,nRF905進(jìn)入 Shock Burst TM 接收模式;650 μs后,nRF905進(jìn)入監(jiān)測狀態(tài),等待接收數(shù)據(jù);
(2)當(dāng)nRF905檢測到同一頻段的載波后,將載波檢測引腳置高,當(dāng)接收到相匹配的地址后,將地址匹配引腳置高,當(dāng)一個正確的數(shù)據(jù)包接收完畢后,nRF905自動移去字頭、地址和CRC校驗位,然后把數(shù)據(jù)準(zhǔn)備引腳置高;
(3)微控制器S3C2410把TRX_CE的引腳置低,nRF905進(jìn)入空閑模式.
微控制器S3C2410通過SPI口以一定的速率接收數(shù)據(jù).當(dāng)所有的數(shù)據(jù)接收完畢,nRF905把數(shù)據(jù)準(zhǔn)備引腳和地址匹配引腳置低后,nRF905可以進(jìn)入Shock Burst TM接收模式、Shock Burst TM發(fā)送模式或關(guān)機(jī)模式.
網(wǎng)絡(luò)接入模塊負(fù)責(zé)實現(xiàn)TCP/IP協(xié)議并接入Internet網(wǎng)絡(luò),主要由S3C2410單片機(jī)與網(wǎng)絡(luò)控制芯片 RTL8019AS[6]構(gòu) 成,以 太 網(wǎng) 驅(qū) 動 芯 片RTL8019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入互聯(lián)網(wǎng),接口電路如圖3所示.
圖3 S3C2410與RTL8019AS的連接
RTL8019AS的IOS0~I(xiàn)OS3基地址選擇引腳接地時,I/O基地址為300 H,即001100000000,所以地址線SA9,SA8接+5V,寄存器地址偏移量為00 H~1 FH,共32個,而對應(yīng)地址從300 H到31 FH,所以只需要將SA0~SA4接到S3C2410的地址總線ADDR0~ADDR4即可,其余地址線接地.同時,地址使能端AEN接S3C2410的通用片選引腳nGCS3,當(dāng)S3C2410訪問RTL8019AS時,RTL8019AS被激活.芯片IORB和IOWB引腳為讀寫信號線,接到S3C2410的nOE和nWE讀寫控制引腳.S3C2410的定時器輸出引腳TOUT0與RTL8019AS的RSTDRV連接,并進(jìn)行復(fù)位操作,由于RSTDRV為高電平有效,因此給該引腳加一個1 μs以上的高電平就可以復(fù)位.RTL8019AS可以兼容8位和16位操作,IOCS16是16位I/O選擇引腳.RTL8019AS上電復(fù)位時,如果IOCS16為低電平,則RTL8019AS將選擇8位模式,反之,將選擇16位模式.由于 S3C2410是 16/32位的CPU,所以選擇RTL8019AS16位的總線模式(每次讀/寫2個字節(jié),需要16根數(shù)據(jù)總線,即SD0~SD15).INT0表示RTL8019AS的中斷請求引腳與S3C2410的外部中斷請求引腳相連.JP引腳為高電平,I/O和中斷采用跳線模式.
單片機(jī)S3C2410作為系統(tǒng)的核心,不僅要實現(xiàn)精簡的TCP/IP協(xié)議棧,還要實現(xiàn)對無線收發(fā)芯片nRF905的控制.軟件處理流程見圖4.
圖4 軟件處理流程
系統(tǒng)的工作流程如下:S3C2410上電啟動后,進(jìn)行相關(guān)的初始化操作,并設(shè)定好中斷模式,然后正常啟動Web服務(wù),S3C2410通過Internet獲取相關(guān)指令.當(dāng)網(wǎng)頁中傳遞了相關(guān)的指令時,S3C2410啟動中斷處理程序,即S3C2410暫時中斷Web服務(wù),通過對nRF905的控制,實現(xiàn)與智能設(shè)備間的數(shù)據(jù)收發(fā),并將通信數(shù)據(jù)緩存,然后S3C2410結(jié)束中斷處理程序,恢復(fù)Web服務(wù),并通過動態(tài)網(wǎng)頁技術(shù)把數(shù)據(jù)以網(wǎng)頁的形式傳給客戶端.
智能設(shè)備采用RS232,RS485,CAN總線等有線方式,通過Web服務(wù)器接入Internet時,受到信息點結(jié)構(gòu)布局和走線的限制,缺乏靈活性.本文設(shè)計的無線Web服務(wù)器,可以方便、靈活地實現(xiàn)對信息點的控制并減少布線成本.小范圍無線與嵌入式系統(tǒng)的結(jié)合,必將推動嵌入式系統(tǒng)的廣泛應(yīng)用,此類產(chǎn)品以其微型化和低成本的特點,在家庭和辦公自動化、電子商務(wù)、工業(yè)控制,以及智能化建筑物等方面有廣闊的應(yīng)用前景.
[1]朱芳,章堅武,高峰.一種基于nRF905的無線數(shù)據(jù)采集系統(tǒng)設(shè)計[J].杭州電子科技大學(xué)學(xué)報,2007(2):29-32.
[2]董煒,楊士元.嵌入式Internet與家庭網(wǎng)關(guān)技術(shù)[J].計算機(jī)應(yīng)用研究,2005(6):222-225.
[3]周維,陳默.基于S3C2410的 ARM開發(fā)平臺[J].電子技術(shù),2004(7):4-7.
[4]NORDIC Semiconductor.nRF905 DataSheet[DB/OL].[2010-09 -05]http://www.nordicsemi.com.
[5]孫鵬.單片射頻收發(fā)器nRF905的原理與應(yīng)用[J].電子制作,2008(2):63-66.
[6]REALTEK Semiconductor.RTL8019 DataSheet[DB/OL].[2011-05-06]http://www.realtek.com.tw.