嵌入式網(wǎng)絡(luò )監控系統的研究
摘要:無(wú)線(xiàn)數據傳輸現在廣泛地運用在各種控制領(lǐng)域。該系統中采用由無(wú)線(xiàn)收發(fā)芯片nRF401配合外圍電路的射頻模塊來(lái)完成數據的傳輸;通過(guò)對Bootloader硬件的初始化后,實(shí)現將μClinux裁減并移植到S3C44BO中,最后用嵌入式處理器程序來(lái)實(shí)現對傳輸數據的處理和存儲、網(wǎng)絡(luò )通信、外部控制等任務(wù)。經(jīng)過(guò)測試通信距離為80m,無(wú)線(xiàn)通信最高速率可達到20Kb/s。
關(guān)鍵詞:μClinux;無(wú)線(xiàn)數據傳輸;Bootloader;無(wú)線(xiàn)通信
0 引言
無(wú)線(xiàn)數據傳輸現在廣泛地運用在車(chē)輛監控、遙控、小型無(wú)線(xiàn)網(wǎng)絡(luò )、小型無(wú)線(xiàn)數據終端等領(lǐng)域中,無(wú)線(xiàn)數據傳輸主要由數據終端機、主機和主控制機組成,主控制機與主機間用串行口通信,主機和數據終端機之間通過(guò)射頻模塊進(jìn)行通信。
傳感器采集信號后傳給數據終端機,終端機通過(guò)射頻模塊進(jìn)行無(wú)線(xiàn)數據傳輸,主控制機與數據終端的通信轉化為主控制機與主機串口(UA RT)間的通信以及數據終端通過(guò)無(wú)線(xiàn)數傳模塊和主機之間的數據傳輸,在此基礎上形成了無(wú)線(xiàn)分布式傳感/控制網(wǎng)絡(luò )(Wireless Distribution ed Sensor/Control Networks,WDSCN)的處理機的軟硬件系統搭建。無(wú)線(xiàn)數據傳輸的處理系統采用嵌入式系統輔以適當無(wú)線(xiàn)數傳模塊來(lái)實(shí)現。系統中用射頻模塊來(lái)完成數據的傳輸,用嵌入式系統來(lái)實(shí)現對傳輸數據的處理和存儲、網(wǎng)絡(luò )通信、外部控制等任務(wù)。
1 射頻模塊的設計
射頻模塊的主要功能由無(wú)線(xiàn)收發(fā)芯片nRF401配合外圍電路完成,該模塊內部結構分為發(fā)射電路、接收電路、模式和低功耗控制邏輯電路以及串行接口幾個(gè)部分組成。
發(fā)射電路有射頻功率放大器(PA)、鎖相環(huán)(PLL)、壓控振蕩器(VCO)、頻率合成器等?;鶞收袷幤鞑捎猛饨泳w振蕩器產(chǎn)生電路所需的基準頻率,振蕩電路采用鎖相環(huán)方式,由在DDS基礎上的頻率合成器、外接的無(wú)源回路濾波器和壓控振蕩器組成,壓控振蕩器由片內的振蕩電路和外接的LC諧振回路組成,要發(fā)射的數據通過(guò)DIN端輸入。
接收電路由低噪聲放大器(LNA)、混頻器、中頻放大器、GFSK解調器、濾波器等電路組成,中頻放大器的輸出信號經(jīng)過(guò)中頻濾波器后送入GFSK解調器解調,解調后的數字信號在DOUT端輸出。
芯片內包含有發(fā)射功率放大器、低噪聲接收放大器、晶體振蕩器、鎖相環(huán)、壓控振蕩器、混頻器等電路,工作頻率為ISM頻段433 MHz,采用FSK調制解調、晶體振蕩和PLL頻率合成技術(shù),接收靈敏度為-105 dBm,發(fā)射功率為10 dBm,待機狀態(tài)電流消耗僅10μA。在接收模式中,射頻輸入信號被低噪聲放大器放大,經(jīng)由混頻器變換,在送入解調器之前被放大和濾波,解調后的數字信號在DOUT端輸出。在發(fā)射模式中,壓控振蕩器的輸出信號是直接送入到功率放大器,DIN端輸入的數字信號被頻移鍵控后饋送到功率放大器輸出。射頻模塊的電路如圖1所示。
2 嵌入式系統
一般而言,嵌入式系統的構架可以分為4個(gè)部分:處理器、存儲器、輸入/輸出(I/O)和軟件。嵌入式系統是軟件和硬件的綜合體,它是以應用為中心,以計算機技術(shù)為基礎,軟、硬件皆可以裁剪,從而能夠適應于工業(yè)和服務(wù)領(lǐng)域實(shí)際應用中。
由于μClinux在設計時(shí)就已經(jīng)充分考慮了可移植性,所以將μClinux移植到S3C44B0相對來(lái)說(shuō)是比較容易的。但要使μClinux正常運行,處理器必須滿(mǎn)足以下要求:
(1)處理器的C編譯器能產(chǎn)生可重入代碼。
(2)用C語(yǔ)言就可以打開(kāi)和關(guān)閉中斷。
(3)處理器支持中斷,并且能產(chǎn)生定時(shí)中斷(通常在10~100 Hz之間)。
(4)處理器支持能夠容納一定量數據(可能是幾千字節)的硬件堆棧。
2.1 Bootloader的工作
Bootloader就是在操作系統內核運行之前運行的一段程序,通過(guò)這段程序可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調用操作系統內核準備好正確的環(huán)境。因此,正確建立μClinux的移植的前提條件是具備一個(gè)與μClinux配套、易于使用的Bootloader。
硬件初始化。系統上電或復位后,程序從位于地址0x0的Reset Exception Vector處開(kāi)始執行,因此需要在這里放置Bootloader的第一條指令:b ResetHandler,跳轉到標號為ResetHandler處進(jìn)行第一階段的硬件初始化,主要內容為:關(guān)Watchdog Timer,關(guān)中斷,初始化PLL和時(shí)鐘,初始化存儲器控制器。比較重要的是PLL的輸出頻率要計算正確,ARMSYS中把它設置為64 MHz;這實(shí)際上就是處理器的工作主頻,這個(gè)時(shí)間參數在第二階段計算SDRAM的刷新計數值和UART的波特率等參數時(shí)還要用到。
建立二級異常中斷矢量表。異常中斷矢量表(Exception Vector Table)是Bootloader與μClinux內核發(fā)生聯(lián)系關(guān)鍵的地方之一。即使μClinux內核已經(jīng)得到處理器的控制權運行,一旦發(fā)生中斷,處理器還是會(huì )自動(dòng)跳轉到從0x0地址開(kāi)始的第一級異常中斷矢量表中的某個(gè)表項(依據于中斷類(lèi)型)處讀取指令運行。在編寫(xiě)Bootloader時(shí),地址0x0處的一級異常中斷矢量表只需簡(jiǎn)單地包含向二級異常中斷矢量表的跳轉指令就可以。這樣,就能夠正確地將發(fā)生的事件交給μClinux的中斷處理程序來(lái)處理。對于μClinux內核,它在RAM空間中基地址為0xC000000處建立了自己的二級異常中斷矢量表。
如果在Bootloader執行的全過(guò)程中都不必響應中斷,那么上面的設置已能滿(mǎn)足要求。在A(yíng)RMSYS上提供了USB下載器,需要用到中斷,Boot loader必須在同樣的地址(0xC000000)處配置自己的二級異常中斷矢量表,以便同μClinux兼容。這張表事先存放在FLASH MEMORY里,引導過(guò)程中由Bootloader將其復制到RAM地址0x0C000000。
2.2 源代碼裁剪與移植
將μClinuX-dist-20040408.tar.gz拷貝到/home/下(或者其他目錄都可以),運行解壓命令:tar xvzfμClinux-ARMSYS-20040801. tar.gz,解壓結束后會(huì )在/home/下生成μClinux-dist目錄。
評論