新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式ARM-Linux的GPS智能終端設計

        基于嵌入式ARM-Linux的GPS智能終端設計

        作者: 時間:2009-08-03 來源:網絡 收藏

        2.2.1 ARM主控模塊
        AT91RM9200的串口UART2和UART3分別與CDMA模塊、模塊通信,在實際通信時兩路連接都加有LVTTL電平到RS 232電平的轉換電路。AT91RM9200接收模塊從串口3發出的位置信息,解析出其中有用數據進行封裝,然后以規定格式通過串口2交給CDMA模塊,通過CDMA網絡接入Internet網最終送至ITS監控中心;接收并解析ITS控制中心發來的短消息命令,按命令進行上傳定位等操作;把系統運行狀態及ITS控制中心發來的信息在液晶屏上顯示出來。
        2.2.2 CDMA通信模塊
        CDMA模塊是整個系統的通信基礎,中采用Fidelix公司的CDMA通信模塊FD810。該模塊內嵌的高通Qualcomm MSM6025芯片,除支持基本的通話和SMS短消息外,還支持CDMA20001x無線數據傳輸。高速上下行速率與大緩存,數據傳輸速率高達153.6 Kb/s,可通過AT命令遠程控制內置TCP/IP協議堆棧。DTGS-800與AT91RM9200通過串口UART2實現數據的收發和AT指令的操作。
        2.2.3 模塊
        接收模塊選用芬蘭Fastrax公司的iTrax100。該模塊支持NMEA0183和Sony ASCⅡ協議的數據格式。GPS模塊通過串口3將數據以固定的幀格式發送至AT91RM9200。GPS模塊需要配備專門的GPS天線接收GPS衛星信號。一般在比較開闊的地區,需接收到3顆以上的GPS衛星信號才能進行準確定位。
        2.2.4 存儲器系統
        存儲器系統采用4 MB NOR FLASH,64 MBNAND FLASH和32 MB SDRAM。NOR FLASH通過16位數據總線與CPU交換數據,用來存儲Uboot,Linux內核、文件系統;NAND FLASH存儲應用程序,作為系統的數據存儲器,如加載電子海圖等。為充分發揮32位ARM處理器的數據處理能力,選用2片16位的HY57V281620HG并聯,以構建32位SDRAM與ARM交換數據。SDRAM在系統中主要用作程序的運行空間、數據及堆棧區。
        首先,通過JTAG口將Uboot、Linux內核、文件系統燒寫到NOR FLASH,將應用程序燒寫到NANDFLASH。在系統啟動時,CPU首先從復位地址0x0處讀取啟動代碼,并將存有引導程序Uboot的NORFLASH存儲器配置到:Bank0,即AT91RM9200的NCS0引腳接至NOR FLASH芯片AT49BV322AD的CE端,這樣就可以從NOR FLASH啟動Linux操作系統。


        3的軟件
        Linux系統只需引導程序、Linux微內核、初始化進程3個基本元素,移植Linux,就是使實時內核能在其他處理器(CPU)或微控制器(MCU)上運行。將嵌入式Linux移植到AT91RM9200平臺上,一般需要4個步驟:下載源碼和建立交叉編譯環境,配置編譯內核,制作文件系統,下載和調試內核。
        3.1 應用程序
        應用程序包括Uboot啟動代碼、串口設備驅動程序、CDMA網絡數據傳輸程序、GPS串口通信程序等。
        (1)系統加電后復位;
        (2)Uboot初始化CPU,SDRMA,分配地址空間等;
        (3)Uboot把Linux內核的壓縮文件解壓到SDRAM中,同時Uboot把控制權移交到Linux。
        Linux的內核有在FLASH存儲器上直接運行和加載到內存中運行2種工作方式。這里采用的FLASH存儲器運行方式相對較復雜,但運行速度更快;
        (4)開始執行SDRMA中的代碼,Linux內核初始化,完成堆棧和中斷的分配等;
        (5)加載串口驅動模塊,完成串口的初始化;
        (6)運行CDMA網絡數據傳輸程序,通過CDMA網絡與Internet進行連接;
        (7)運行GPS串口通信程序,通過串口將GPS數據送至AT91RM9200。
        至此,已建立了從GPS數據采集到數據傳輸的完整的嵌入式監控系統。
        3.2 無線接入網絡程序
        終端由CDMA網絡接入Internet后,通過互聯網進行數據傳輸。系統上電和載入Linux后,首先初始化CDMA模塊,進行端口設置和波特率設置(115 200 b/s);然后進入撥號等待狀態。由于該終端在功能上映射為無線Modem,所以登陸網絡需進行PPP撥號連接,接入號為#777,用戶名和密碼均為CARD。啟動程序后,確認是否撥號成功,若成功撥號,則調用GPS串口通信程序和網絡數據傳輸程序;最后使用Internet結束后,關閉無線連接。
        3.3 CDMA網絡數據傳輸程序
        在Linux操作系統下,監控終端通過CDMA網絡與Internet連接,將數據上傳到監控中心。套接字Socket是許多操作系統網絡編程的通用API,是介于網絡應用層和傳輸層之間的編程接口。套接字提供了訪問下層通信協議的大量系統調用和相應數據結構,進程在Linux上的網絡通信過程就是使用套接字傳輸數據的過程。,文中介紹的Socket通信采用面向連接的TCP協議。
        客戶端和服務器端的TCP應用程序流程如圖3所示。客戶機部分先由Socket()創建本地套接口,給服務器端套接口地址結構賦值;用Connect()函數使本地套接口向服務器端套接口發出建立連接請求,經3次握手建立TCP連接;若連接建立成功,則用Send()和Recv()函數與服務器通信;通信結束,用Close()關閉套接口。
        服務器部分由Socket()創建套接口,并給套接口地址結構賦值;調Bind()函數綁定套接口、用Listen()函數在該套接口上監聽請求;當Accept()函數接受請求,產生新的套接口及描述字,并與客戶端連接;在用Fork()函數派生新的子進程與客戶端通信,主進程繼續處理其他請求。
        3.4串口通信程序
        GPS串口通信程序是對采集到的GPS數據和車輛狀態數據進行解析;對時間、經度、緯度、速度及超速報警等數據解析,并以固定格式通過串口3傳送到AT91RM9200。GPS模塊的工作流程如圖4所示。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和硕县| 鄂托克旗| 新干县| 祥云县| 玛纳斯县| 五指山市| 中阳县| 湘潭县| 彭山县| 桃园县| 宁都县| 平邑县| 罗田县| 新丰县| 马尔康县| 大埔区| 黄平县| 大兴区| 疏附县| 黄龙县| 工布江达县| 咸宁市| 来安县| 柳林县| 蒙自县| 青田县| 祁连县| 仙游县| 运城市| 会理县| 繁峙县| 阳春市| 榆林市| 乾安县| 鄱阳县| 琼海市| 共和县| 西吉县| 中西区| 吕梁市| 孟连|