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