基于Linux內核的無線多頻段WSN網關設計
TL16C554A芯片是8位數據寬度,TL16C554A的D0~D7引腳與ARM9芯片直接相連,讀寫信號是直接連接的。TL16C554A的引腳INA、INTB、INTC、INTD分別接在主控制芯片的引腳INT0、INT2、INT3、INT4,這樣擴展的各通道串口就能通過中斷獨立地工作。
將S3C2440A的地址線A0~A3與TL16C554A的A0~A3直接相連,S3C2440A的nGCS2作為譯碼器74LS139的片選信號。74LS139的輸入端分別接地址線A4~A5。根據譯碼器譯碼,實現地址分配,再通過ARM芯片地址映射。外擴的4通道串口的物理地址為
通道A——0x10000000~0x10000008
通道B——0x10000010~0x10000018
通道C——0x10000020~0x100000028
通道D——0x10000030~0x10000038。
主控制芯片通過訪問這些地址就能訪問外部寄存器,即TL16C554A芯片片內寄存器地址。多頻段子網接入部分接口電路如圖3所示。
圖3 多頻段子網接入部分接口電路
2.2 3G網絡接入接口部分
3G網絡接入部分采用USB接口的華為ET128無線網卡。接入接口使用USB—HUB芯片AU9254A21,它是一款單芯片USB集線器控制器。AU92 54A21采用12MHz無源晶振,為芯片工作提供獨立的時鐘。3G網絡接入部分接口電路如圖4所示。
圖4 3G網絡接入部分接口電路
2.3 以太網接入部分
網關通過以太網口發(fā)送數據包的原理是:處理器先將待發(fā)送的數據存入到內部存儲器,提供發(fā)送緩沖區(qū)的首地址和數據長度,然后執(zhí)行發(fā)送命令,由DM9000A將數據按TCP/IP協(xié)議格式發(fā)送到物理鏈路上。
因以太網信號電平與以太網控制器信號電平不同,所以在硬件電路實現上需要在控制器與RJ-45接口間增加一個網絡變壓器,網絡變壓器采用TRC9016。電信號通過網絡變壓器轉換,然后經RJ-45接口接入以太網,從而完成數據發(fā)送過程。DM9000A主要完成數據包和數字電信號之間的相互轉換。
3 網關軟件系統(tǒng)設計
網關的軟件環(huán)境采用的是嵌入式Linux系統(tǒng)。移植好的Linux2.6.24源碼已經包含了以太網控制器DM9000A、USB接口芯片等芯片的驅動。因此,軟件部分只需要設計串口擴展芯片TL1 6C554A的驅動程序以及Linux環(huán)境下的應用程序即可。
3.1 串口擴展芯片TL16C554A驅動的實現
Linux2.6.24內核提供了統(tǒng)一的設備驅動模型。多串口設備驅動的注冊,流程如圖5所示。
3.2 Linux下PPP的管理和配置
根據網關硬件接口的情況修改、移植通用驅動代碼后,通過相關的配置,定制和編譯網關所需的內核映像文件。內核編譯采用的交叉編譯器版本為arm- linux-gcc3.4.1,使用makemenuconfig ARCH=arm命令進入內核配置圖形化界面,選擇和PPP(Point-to-Point,點對點協(xié)議)有關的選項,添加系統(tǒng)對PPP功能的支持。界面如圖6所示。配置完成以后,保存設置,退出內核配置圖形化界面。使用命令:makeuImage ARCH=arm CROSS_COMPILE=arm-linux-.編譯完成以后,會在源碼包的arch/arm/boot路徑下生成內核映像文件uImage,如圖7 所示。
物聯網相關文章:物聯網是什么
評論