基于ARM與嵌入式Linux的GPRS模塊課程設(shè)計(jì)報告_第1頁
基于ARM與嵌入式Linux的GPRS模塊課程設(shè)計(jì)報告_第2頁
基于ARM與嵌入式Linux的GPRS模塊課程設(shè)計(jì)報告_第3頁
基于ARM與嵌入式Linux的GPRS模塊課程設(shè)計(jì)報告_第4頁
基于ARM與嵌入式Linux的GPRS模塊課程設(shè)計(jì)報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、. . . 課程設(shè)計(jì)說明書基于ARM的GPRS模塊的設(shè)計(jì)目 錄摘要11緒論11.1 嵌入式系統(tǒng)11.1.1 嵌入式系統(tǒng)概述11.1.2 嵌入式處理器11.2 ARM處理器21.3 GPRS無線通訊21.3.1 GPRS定義21.3.2 GPRS的技術(shù)特點(diǎn)22 系統(tǒng)選型與設(shè)計(jì)32.1 硬件選型32.2 模塊總體框圖33 系統(tǒng)硬件設(shè)計(jì)33.1 ARM硬件結(jié)構(gòu)與電路概述33.1.1 SANSUNG S3C2410概述33.1.2 ST2410硬件資源分配43.1.3 ST2410接口資源63.1.4 ST2410 的串口通訊73.2 M22通訊電路板的設(shè)計(jì)103.2.1 BENQ電源部分設(shè)計(jì)113.

2、2.2 BENQ M22 與 SIM 卡的接口113.2.3 BENQ M22 在語音通訊設(shè)計(jì)方面的問題113.2.4 BENQ M22 通訊板的串口124 系統(tǒng)軟件設(shè)計(jì)134.1引導(dǎo)加載程序的設(shè)計(jì)144.1.1 BOOTLOADER 的基本概念144.1.2 ST2410 的 BOOTLOADER 功能說明164.2 串口通訊程序的設(shè)計(jì)174.3 BENQ M22 模塊部的軟件特性175 模塊軟件運(yùn)行流程圖176 模塊設(shè)計(jì)總結(jié)1921 / 24基于ARM與嵌入式Linux的GPRS模塊摘要隨著科技的高速發(fā)展,嵌入式系統(tǒng)已經(jīng)進(jìn)入 32 位時代。在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)的高速發(fā)展的后 PC

3、時代,嵌入式系統(tǒng)已經(jīng)廣泛地應(yīng)用于各類產(chǎn)業(yè)。隨著國外嵌入式產(chǎn)品地進(jìn)一步開發(fā)和推廣,嵌入式技術(shù)和人類生活的聯(lián)系越發(fā)緊密。本文介紹了在 SAMSUNG ARM9和嵌入式 Linux 平臺上的,基于 BenQ M22 模塊的 GPRS 無線通訊模塊的軟硬件設(shè)計(jì)。主要容包括: M22 通訊電路板的 PCB 設(shè)計(jì);ARM9 中 Bootloader 編程與 FLASH 燒寫;M22 和 ARM9 的外圍與部硬件電路的設(shè)計(jì);串口通訊的編程;AT 指令的收發(fā)等等。該系統(tǒng)能夠?qū)崿F(xiàn)語音通訊、短信服務(wù)、來電查詢、來電顯示等功能關(guān)鍵詞:嵌入式;ARM;Linux;GPRS1緒論1.1 嵌入式系統(tǒng)1.1.1 嵌入式系統(tǒng)

4、概述嵌入式系統(tǒng)(Embedded System),是一種嵌入機(jī)械或電氣系統(tǒng)部、具有專一功能和實(shí)時計(jì)算性能的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)常被用于高效控制許多常見設(shè)備,被嵌入的系統(tǒng)通常是包含數(shù)字硬件和機(jī)械部件的完整設(shè)備,例如汽車的防鎖死剎車系統(tǒng)。相反,通用計(jì)算機(jī)如個人電腦則設(shè)計(jì)靈活,可以智能處理各式各樣的運(yùn)算情況,以滿足廣大終端用戶不同的需要?,F(xiàn)代嵌入式系統(tǒng)通常是基于微控制器(如含集成存和/或外設(shè)接口的中央處理單元)的,但在較復(fù)雜的系統(tǒng)中普通微處理器(使用外部存儲芯片和外設(shè)接口電路)也很常見。通用型處理器、專門進(jìn)行某類計(jì)算的處理器、為手持應(yīng)用訂制設(shè)計(jì)的處理器等,都可能應(yīng)用到嵌入式系統(tǒng)。常見的專用處理器有

5、數(shù)字信號處理器。1.1.2 嵌入式處理器嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運(yùn)行的硬件單元??梢苑譃椋呵度胧轿⑻幚砥鳌⑶度胧轿⒖刂破?、嵌入式DSP處理器等。嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運(yùn)行的硬件單元。圍極其廣闊,從最初的位處理器,目前仍在大規(guī)模應(yīng)用的位單片機(jī),到最新的受到廣泛青睞的32位,64位嵌入式CPU。1.2 ARM處理器ARM處理器是一種32位嵌入式RISC處理器。ARM(AdvancedRISCMachines),既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。ARM處理器是一個32位元精簡指令集(RISC)處理器

6、架構(gòu),其廣泛地使用在許多嵌入式系統(tǒng)設(shè)計(jì)。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%40%以上的存儲空間,同時具備32位代碼的所有優(yōu)點(diǎn)。大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進(jìn)行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。1.3 GPRS無線通訊1.3.1 GPRS定義通用分組無線服務(wù)(英語:General Packet Radio Service,縮寫:GPRS)是GSM移動用戶可以使用的一種移動數(shù)據(jù)業(yè)務(wù)/技術(shù)。它經(jīng)常被描述成“2.5G”,意指這項(xiàng)技術(shù)介于第二代(2G)與第三代(3G)移動通訊技術(shù)之間。它是利用GSM網(wǎng)絡(luò)中未使用的TDM

7、A信道,提供中速的數(shù)據(jù)傳輸服務(wù)。起初有人想通過擴(kuò)展GPRS來覆蓋其他標(biāo)準(zhǔn),只是這些網(wǎng)絡(luò)都正在轉(zhuǎn)而使用GSM標(biāo)準(zhǔn),這樣GSM就成了GPRS唯一能夠使用的網(wǎng)絡(luò)。GPRS在Release 97之后被集成進(jìn)GSM標(biāo)準(zhǔn),起先它是由ETSI標(biāo)準(zhǔn)化,但是現(xiàn)在已經(jīng)移交3GPP負(fù)責(zé)。1.3.2 GPRS的技術(shù)特點(diǎn)數(shù)據(jù)實(shí)現(xiàn)分組發(fā)送和接收,按流量計(jì)費(fèi);56115Kbps的傳輸速度.GPRS的應(yīng)用,遲些還會配合Bluetooth(藍(lán)牙技術(shù))的發(fā)展。到時,數(shù)碼相機(jī)加了bluetooth,就可以馬上通過手機(jī),把像片傳送到遙遠(yuǎn)的地方,也不過一刻鐘的時間。相對于GSM的9.6kbps的訪問速度而言,GPRS擁有171.2kb

8、ps的訪問速度;在連接建立時間方面,GSM需要10-30秒,而GPRS只需要極短的時間就可以訪問到相關(guān)請求;而對于費(fèi)用而言,GSM是按連接時間計(jì)費(fèi)的,而GPRS只需要按數(shù)據(jù)流量計(jì)費(fèi);GPRS對于網(wǎng)絡(luò)資源的利用率而相對遠(yuǎn)遠(yuǎn)高于GSM。2 系統(tǒng)選型與設(shè)計(jì)2.1 硬件選型由于ARM系列處理器中 ARM9 對于 Linux 操作系統(tǒng)的支持性明顯強(qiáng)于 ARM7。 因此, 本模塊采用的核心微處理器是屬于ARM9系列微處理器的SAMSUNG S3C2410出于成本和功能的考慮,本模塊中選用的GPRS/GSM選用的BenQ的M22無線模塊。主要儀器設(shè)備如下:SAMSUNG ST2410 ARM9 開發(fā)板SHA

9、RP TFT_LCD 液晶屏BenQ M22 GPRS 模塊SIM 卡GSM 900/1800 MHz 吸盤天線BenQ M22 電路板2.2 模塊總體框圖3 系統(tǒng)硬件設(shè)計(jì)3.1 ARM硬件結(jié)構(gòu)與電路概述3.1.1 SANSUNG S3C2410概述S3C2410A 采用了 ARM920T 核, 0.18um 工藝的 CMOS 標(biāo)準(zhǔn)宏單元和存儲單元。它的低功耗、精簡和出色的全靜態(tài)設(shè)計(jì)特別適用于對成本和功耗敏感的應(yīng)用。同樣它還采用了一種叫做 Advanced Microcontroller Bus Architecture(AMBA) 新型總線結(jié)構(gòu)。S3C2410 的顯著特性是它的 CPU 核心

10、, 是一個由 Advanced RISC Machines(ARM) 設(shè)計(jì)的 16/32 位 ARM920T RISC 處理器。ARM920T 核由ARM9TDMI、存儲管理單元(MMU)和高速緩存三部分組成。其中,MMU 可以管理虛擬存。ARM920T 實(shí)現(xiàn)了 MMU,AMBA BUS 和 Harvard 高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨(dú)立的 16KB 指令 Cache 和 16KB 數(shù)據(jù) Cache,每個都是由 8 字長的行構(gòu)成。ARM920T 有兩個部協(xié)處理器:CP14 和 CP15。CP14 用于調(diào)試控制,CP15 用于存儲系統(tǒng)控制以與測試控制。S3C2410 的部結(jié)構(gòu)圖如圖 3.1

11、所示圖 3.1 S3C2410 部結(jié)構(gòu)圖3.1.2 ST2410硬件資源分配S3C2410 將系統(tǒng)的存儲空間分成 8 組(Bank),每組的大小是 128MB,共 1GB。 Bank0 到 Bank5 的開始地址是固定的,用于 ROM 或 SRAM。Bank6 和 Bank7 用于 ROM、 SRAM 或 SDRAM,這兩個組可編程且大小一樣。Bank7 的開始地址是 Bank6 的結(jié)束地址,靈活可變。所有存塊的訪問周期都是可編程的。S3C2410 采用 nGCS7:08 個通用片選信號選擇這些組。因此,S3C2410 支持兩種啟動模式:從 NAND FLASH 啟動和從外部 nGCS0 片選

12、的 NOR FLASH 啟動。所以在這兩種啟動模式下, 各片選的存儲空間分配是不同的, 這兩種啟動模式的存儲分配如圖 3.3 所示:圖3.3 存儲空間分配圖a)圖是 nGCS0 片選的 Nor Flash 啟動模式下的存儲分配圖;b)圖是 NAND FLASH 啟動模式下的存儲分配圖;說明:SFR Area 為特殊寄存器地址空間。在進(jìn)行器件地址說明之前,有一個點(diǎn)需要注意,nGCS0 片選的空間在不同的。啟動模式下,映射的器件是不一樣的。由下表可以知道:在 NAND FLASH 啟動模式下,部的 4K Bytes BootSRAM 被映射到 nGCS0片選的空間。在 Nor Flash 啟動模式

13、(非 NAND FLASH 啟動模式)下,與 nGCS0 相連的外部存儲器 Nor Flash 就被映射到 nGCS0 片選的空間。地址圍說明片選信號0x4800_00000x6000_0000SFR(特殊寄存器)地址空間0x4000_00000x4000_0FFFNAND FLASH 啟動模式下,該空間沒有被使用非 NAND FLASH 啟動模式下,該空間為 BootSRam0x3000_00000x3400_0000SDRAM 空間nGCS60x1900_0300CS8900 的 IO 基址nGCS30x0000_00000x0020_0000NAND FLASH 啟動模式下,nGCS0B

14、ootRam 的有效地址:0x0000_00000x0000_0FFF非 NAND FLASH 啟動模式下,Nor Flash 的有效地址空間為:0x0000_00000x0020_0000表3.1 硬件地址分配表3.1.3 ST2410接口資源跳線名稱說明JP1(核心板)決定 S3C2410 的啟動模式插上短路塊從 Nand Flash 中啟動,默認(rèn)不插上短路塊從 Nor Flash 中啟動表 3.2 跳線分配表按鍵名稱說明S1(Reset)(核心板)復(fù)位按鍵,小按鍵K1K4 按鍵4 鍵盤表 3.3 核心板按鍵說明接口名稱說明T1(RJ45)以太網(wǎng)接口(RJ45, 帶隔離器的)UART1(J

15、8), UART3(J7)串行口 1,2U10紅外線 IrDASD_CARD(J1)SD 卡接口J17USB HOST 接口USB_DEVICE(J15)USB DEVICE 接口J2音頻輸出接口J27CCFL 背光電源輸出接口J6板子的電源接口JP2一些擴(kuò)展口JP1(LCD INTERFACE)LCD 和觸摸屏接口表 3.4 底板接口說明3.1.4 ST2410 的串口通訊由于在本系統(tǒng)中 ARM 與 PC 機(jī)和 M22 模塊都是通過串口進(jìn)行通訊。在此,我詳細(xì)介紹一下 S3C2410 的串口資源。串行通信是微計(jì)算機(jī)之間一種常見的近距離通信手段,因使用方便,編程簡單而廣泛使用,幾乎所有的微控制器

16、,PC 都提供串行通信接口。(1)串行通訊傳輸格式圖 3.4 串口的幀數(shù)據(jù)傳輸格式開始前,線路處于空閑狀態(tài),送出連續(xù)“1”。傳送開始時首先發(fā)一個“0”作為起始位,然后出現(xiàn)在通信線上的是字符的二進(jìn)制編碼數(shù)據(jù)。每個字符的數(shù)據(jù)位長可以約定為5 位、6 位、7 位或8 位,一般采用ASCII 編碼。后面是奇偶校驗(yàn)位,根據(jù)約定,用奇偶校驗(yàn)位將所傳字符中為“1”的位數(shù)湊成奇數(shù)個或偶數(shù)個。也可以約定不要奇偶校驗(yàn),這樣就取消奇偶校驗(yàn)位。最后是表示停止位的“1”信號,這個停止位可以約定持續(xù)1 位、1.5 位或2位的時間寬度。至此一個字符傳送完畢,線路又進(jìn)入空閑,持續(xù)為“1”。經(jīng)過一段隨機(jī)的時間后,下一個字符開始

17、傳送才又發(fā)出起始位。每一個數(shù)據(jù)位的寬度等于傳送波特率的倒數(shù)。微機(jī)異步串行通信中,常用的波特率為110,150,300,600,1200,2400,4800,9600 等。(2) 電氣特性RS-232 標(biāo)準(zhǔn)采用的接口是9 芯或25 芯的D 型插頭,常用的一般是9 針插頭(DB-9),表3.5是DB9 引腳說明:引腳名稱全稱說明FGFrame Ground連到與其的接地線TXDTransmitted Data數(shù)據(jù)輸出線RXDReceived Data數(shù)據(jù)輸入線RTSRequest to Send要求發(fā)送數(shù)據(jù)CTSClear to Send回應(yīng)對方發(fā)送的RTS的發(fā)送許可,告訴對方可以發(fā)送DSRDat

18、a Set Ready告知本機(jī)在待命狀態(tài)DTRData Terminal Ready告知數(shù)據(jù)終端處于待命狀態(tài)CDCarrier Detect載波檢出,用以確認(rèn)是否收到Modem的載波SGSignal Ground信號線的接地線(嚴(yán)格的說是信號線的零標(biāo)準(zhǔn)線)表3.5 DB9引腳說明圖 3.5 DB9 引腳實(shí)物圖要完成基本的通信功能,實(shí)際上只需要RXD,TXD,GND 即可,但是由于BenQ的M22通訊模塊需要握手信號(RTS和CTS),所以在本系統(tǒng)中至少要接5根線。同時又由于RS-232-C 標(biāo)準(zhǔn)所定義的高,低電平信號與S3C210X 系統(tǒng)的LVTTL 電路定義的高,低電平信號完全不同,LVTT

19、L的標(biāo)準(zhǔn)邏輯“1”對應(yīng)2V3.3V 電平,標(biāo)準(zhǔn)邏輯“0”對應(yīng)0V0.4V 電平,而RS-232-C 標(biāo)準(zhǔn)采用負(fù)邏輯方式,標(biāo)準(zhǔn)邏輯“1”對應(yīng)-5V-15V 電平,標(biāo)準(zhǔn)邏輯“0”對應(yīng)+5V+15V。顯然,兩者間要進(jìn)行通信,必須經(jīng)過電平的轉(zhuǎn)換,轉(zhuǎn)換芯片采用的MAX232。電路原理圖見圖3.6:圖 3.6 串口連接電路圖其中 J8 串口負(fù)責(zé)與 BenQ M22 通訊,J7 串口負(fù)責(zé)與 PC 機(jī)通訊。(3)S3C2410的UART操作S3C2410的UART(通用異步串行口)單元提供三個獨(dú)立的異步串行I/O 端口,每個都可以在中斷和DMA 兩種模式下進(jìn)行。它們支持最高波特率115.2Kbps。每個UAR

20、T 通道包含2個16 位FIFO 分別提供給接收和發(fā)送。S3C2410X 的UART可以進(jìn)行以下參數(shù)的設(shè)置:可編程的波特率,紅外收/發(fā)模式,1 或2個停止位,5 位,6 位,7 位或8 位數(shù)據(jù)寬度和奇偶位校驗(yàn)。1)發(fā)送數(shù)據(jù)數(shù)據(jù)發(fā)送幀的格式是可編程的,它包含一個開始位,5 到8 個數(shù)據(jù)位,一個可選的奇偶位和一個或兩個停止位,這些可以通過線性控制器UCONn)來設(shè)置。發(fā)送器也能夠產(chǎn)生發(fā)送中止條件。中止條件迫使串口輸出保持在邏輯0 狀態(tài),這種狀態(tài)保持一個傳輸幀的時間長度。通常在一幀傳輸數(shù)據(jù)完整地傳輸完之后,在通過這個全0 狀態(tài)將中止信號發(fā)送給對方。中止信號發(fā)送之后,傳送數(shù)據(jù)連續(xù)放到 FIFO 中(在

21、不使用FIFO 模式下,將被放到輸出保持寄存器)。2)接收數(shù)據(jù)與數(shù)據(jù)發(fā)送一樣,數(shù)據(jù)接收的幀也是可以編程的,它包含一個開始位,5到8個數(shù)據(jù),一個可選的奇偶位和一位或兩位停止位,它們都是通過線性控制器(ULCONn)來設(shè)置的。接收器能夠檢測溢出錯誤,奇偶校驗(yàn)錯誤,幀錯誤和中止?fàn)顩r,每種情況下都將會將一個錯誤標(biāo)志置位。3)波特率的設(shè)置每個UART 的波特率發(fā)生器為傳輸提供了串行移位時鐘。波特率產(chǎn)生器的時鐘源可以C、從S3C2410X 的部系統(tǒng)時鐘或UCLK 中來選擇。波特率由時鐘源(PCLK 或UCLK) 16 分頻和UART 波特率除數(shù)寄存器(UBRDIVn)指定的16 位除數(shù)決定。UBRDIVn

22、 的值可以按照下式確定:UBRDIVn = (int)(PCLK/(bps*16)-1例如,如果波特率為115200bps 且PCLK 或UCLK 為40MHz, 則UBRDIVn 為:UBRDIVn =(int)(40000000)(115200*16)-1= (int)(21.7)-1= 21-1 = 203.2 M22通訊電路板的設(shè)計(jì)BenQ M22 通訊電路板主要是由 M22 無線模塊的外圍接口電路組成(參見附錄1)。該電路板主要包括以下幾個部分:(1)電源與整流部分(2)串口通訊接口(3)SIM 卡電路(4)差分語音電路(5)LED 信號燈顯示電路(6)蜂鳴器接口(7)按鍵輸入(8)

23、天線接口其管腳(44 腳)分配如表 3.6 所示管腳名管腳數(shù)目描述UART/RS2326RS232 接口UART22軟件調(diào)試BU1蜂鳴器輸出GPIO6通用 I/O 管腳Power On1上電運(yùn)行LED Driver1LED 驅(qū)動SIM4SIM 卡接口VBATRF3RF 的電源輸入VBATBB1BB 的電源輸入Audio7語音接口Keypad Interrupt1鍵盤中斷接口BGND10地NC1無連接表 3.6 BenQ M22 管腳分配表3.2.1 BenQ電源部分設(shè)計(jì)我們知道無線模塊的耗電具有不穩(wěn)定的特點(diǎn)。在待機(jī)狀態(tài),在和基站的握手狀態(tài),在通話狀態(tài),在撥號狀態(tài),在信號強(qiáng)弱不同的地方這些因素都

24、會直接的影響無線模塊的耗電流,所以無線模塊的電源設(shè)計(jì)非常重要。因此我的電源設(shè)計(jì)方案采用LM7805和LM2576的聯(lián)合設(shè)計(jì)。直流電源(12V)輸入LM7805,然后輸出DC5V,與此同時通過LM2576產(chǎn)生DC4V電壓供給M22。由于LM2576具有可靠的工作性能、較高的工作效率和較強(qiáng)的輸出電流驅(qū)動能力,從而為M22的穩(wěn)定、可靠工作提供了強(qiáng)有力的保證。圖 3.9 M22 電路板電源部分電路原理圖3.2.2 BenQ M22 與 SIM 卡的接口由于 BenQ M22 必須通過中國電信的 GSM/GPRS 網(wǎng)絡(luò)才能夠工作, 所以必須要用到 SIM 卡。安裝時只要以右上角的缺口為準(zhǔn)即可。圖 3.1

25、0 SIM 卡接口電路原理圖3.2.3 BenQ M22 在語音通訊設(shè)計(jì)方面的問題在語音通訊方面,M22 提供了兩個語音通道: 一個我們叫做差分通道,也就是說無論是MICPHONE信號的輸入,還是SPEAKER信號的輸出都是采用差分的形式。也就是我們平時所說的“雙端輸入雙端輸出”。在管腳的定義上MICIP,MICIN就分別是MICPHONE的正輸入端和負(fù)輸入端。EARP,EARN就分別是SPEAKER的正輸出端和負(fù)輸出端。另一路語音通道是單端方式。具體管腳定義為AUXI和AUXOP。 其中AUXI為MICPHONE的正輸入端,MICPHONE的負(fù)輸入端應(yīng)該對地。AUXOP為SPERKER的正輸

26、出端,SPERKER的另一端應(yīng)該對地。當(dāng)然從外部線路的轉(zhuǎn)換來說在這一路語音通道的使用中,MICPHONE也可以接成差分的形式,但是需要一個轉(zhuǎn)換電路。SPERKER也可以接成差分輸入的形式,也需要一個差分轉(zhuǎn)單端的線路。以上說了關(guān)于單端語音通道的一些問題。下面我們敘述一下差分語音通道的一些問題。圖3.11是差分端的MICPHONE 輸入?yún)⒖紙D圖 3.11 差分方式的 MICPHONE 電路原理圖圖3.12是SPEAKER 的線路圖圖 3.12 差分方式的 SPEAKER 電路原理圖需要說明的是,由于單端輸入單端輸出的語音通道特別容易受到輻射干擾,從而對語音的質(zhì)量產(chǎn)生了很大的影響,所以在本系統(tǒng)中只采

27、用了差分語音通道。3.2.4 BenQ M22 通訊板的串口前面已經(jīng)提到了由于 RS-232 電平的問題,M22 不能直接和 PC 機(jī)通訊,但是可以直接和 ARM 或單片機(jī)通訊,不需要任何電平轉(zhuǎn)換芯片。那為什么這里卻又需要一個電平轉(zhuǎn)換芯片(SP3238)呢?主要是由于 ST2410 上的串口已經(jīng)通過了 MAX232,轉(zhuǎn)換成了 RS-232-C 電平。為了能夠與其通訊,必須也要將由 M22 出來的串口信號轉(zhuǎn)換成 RS-232-C 電平。在此,我們采用的是另一種電平轉(zhuǎn)換芯片 SP3238。因?yàn)榇诵酒梢砸淮无D(zhuǎn)換 9 個信號線,與 MAX232 相比更方便。圖 3.20 M22 與 ARM 進(jìn)行串口

28、通訊原理圖圖 3.21 SP3238 與 M22 接口的電路原理圖4 系統(tǒng)軟件設(shè)計(jì)該GPRS通訊程序是在ARM ADS 1.2(ARM Developer Suite。是ARM 公司推出的新一代ARM 集成開發(fā)工具。)集成開發(fā)環(huán)境中編譯通過后,然后產(chǎn)生可以直接燒寫在FLASH 中的.bin 格式的二進(jìn)制可執(zhí)行文件,最后進(jìn)行下載運(yùn)行的。4.1引導(dǎo)加載程序的設(shè)計(jì)引導(dǎo)加載程序(Bootloader)是嵌入式系統(tǒng)的重要組成部分。4.1.1 Bootloader 的基本概念一個嵌入式 Linux 系統(tǒng)從軟件的角度看,通常可以分為四個層次:(1)引導(dǎo)加載程序:包括固化在固件(firmware)中的 boo

29、t 代碼(可選),和 Boot Loader 兩大部分。(2)Linux 核:特定于嵌入式板子的定制核以與核的啟動參數(shù)。(3)文件系統(tǒng): 包括根文件系統(tǒng)和建立于 Flash 存設(shè)備之上文件系統(tǒng)。(4)用戶應(yīng)用程序。特定于用戶的應(yīng)用程序,有時在用戶應(yīng)用程序和核層之間可能還會包括一個嵌入式圖形用戶界面。常用的嵌入式 GUI 有:MicroWindows和 MiniGUI 等。引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段代碼。我們熟悉的 PC 中的引導(dǎo)程序一般由 BIOS 和位于 MBR 的 OS bootloader(例如 LILO 或者 GRUB)一起組成。然而在嵌入式系統(tǒng)常沒有像 BIOS 那樣的固件

30、程序(有的嵌入式 CPU 有),因此整個系統(tǒng)的加載啟動任務(wù)就完全由 bootloader 來完成。在嵌入式 Linux 中,引導(dǎo)加載程序即等效為 bootloader。簡單地說,bootloader 就是在操作系統(tǒng)核運(yùn)行前運(yùn)行地一段小程序。通過這段小程序,我們可以初始化必要的硬件設(shè)備,創(chuàng)建核需要的一些信息并將這些信息通過相關(guān)機(jī)制傳遞給核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),最終調(diào)用操作系統(tǒng)核,真正起到引導(dǎo)和加載核的作用。bootloader 是依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式系統(tǒng)中。每種不同的 CPU 體系結(jié)構(gòu)都有不同的 Boot Loader。有些 Boot Loader 也支持多種

31、體系結(jié)構(gòu)的 CPU,比如 U-Boot 就同時支持 ARM 體系結(jié)構(gòu)和 MIPS 體系結(jié)構(gòu)。除了依賴于 CPU 的體系結(jié)構(gòu)外,Boot Loader 實(shí)際上也依賴于具體的嵌入式板級設(shè)備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們基于一樣的 CPU構(gòu)建,運(yùn)行在其中一塊電路板上的 bootloader,未必能夠運(yùn)行在另一塊電路開發(fā)板上。盡管如此,我們?nèi)匀豢梢詫?Bootloader 歸納出一些通用的概念來,以指導(dǎo)用戶特定的 Bootloader 設(shè)計(jì)與實(shí)現(xiàn):(1)Boot Loader 的安裝媒介系統(tǒng)加電或復(fù)位后,所有的 CPU 通常都從某個由 CPU 制造商預(yù)先安排的地址上取指令。比如

32、,基于 ARM7TDMI core 的 CPU 在復(fù)位時通常都從地址 0x00000000 取它的第一條指令。而基于 CPU 構(gòu)建的嵌入式系統(tǒng)通常都有某種類型的固態(tài)存儲設(shè)備(比如:ROM、EEPROM 或 FLASH 等)被映射到這個預(yù)先安排的地址上。因此在系統(tǒng)加電后,CPU 將首先執(zhí)行 Boot Loader 程序。(2)用來控制 Boot Loader 的設(shè)備或機(jī)制主機(jī)和目標(biāo)機(jī)之間一般通過串口建立連接,Boot Loader 軟件在執(zhí)行時通常會通過串口來進(jìn)行 I/O,比如:輸出打印信息到串口,從串口讀取用戶控制字符等。(3)Bootloader 的啟動方式Bootloader 的啟動過程可

33、以是單階段的,也可以是多階段的。通常多階段的 bootloader 能提供更為復(fù)雜的功能,以與更好的可移植性。從固態(tài)存儲設(shè)備上啟動的 bootloader 大多數(shù)是二階段的啟動過程,也即啟動過程可以分為 stage1 和 stage2 兩部分。Boot Loader 的 stage1 通常包括以下步驟:1)硬件設(shè)備初始化。2)為加載 Boot Loader 的 stage2 準(zhǔn)備 RAM 空間。3)拷貝 Boot Loader 的 stage2 到 RAM 空間中。4)設(shè)置好堆棧。5)跳轉(zhuǎn)到 stage2 的 C 入口點(diǎn)。Boot Loader 的 stage2 通常包括以下步驟1)初始化本階

34、段要使用到的硬件設(shè)備。2)檢測系統(tǒng)存映射(memory map)。3)將 kernel 映像和根文件系統(tǒng)映像從 flash 上讀到 RAM 空間中。4)為核設(shè)置啟動參數(shù)。5)調(diào)用核。(4)Bootloader 的操作模式大多數(shù) bootloader 都包含兩種不同的操作模式:“啟動加載”模式和“下載”模式,這種區(qū)別對于開發(fā)人員才有意義。但從最終用戶的角度看,bootloader的作用永遠(yuǎn)就是用來加載操作系統(tǒng),而并不存在所謂的啟動加載模式與下載工作模式的區(qū)別。啟動加載模式:這種模式也稱為“自主”模式,即 bootloader 從目標(biāo)機(jī)上的某個固體存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,整個過

35、程沒有用戶的介入。這種模式是 bootloader 的正常工作模式,因此當(dāng)以嵌入式產(chǎn)品發(fā)布的時候,bootloader 必須工作在這種模式下。下載模式:在這種模式下,目標(biāo)機(jī)上的 bootloader 將通過串口或者網(wǎng)絡(luò)連接或者其它通信手段從主機(jī)下載文件,比如:下載核鏡像和根文件系統(tǒng)鏡像等。從主機(jī)下載的文件通常首先被 bootloader 保存到目標(biāo)機(jī)的 RAM 中,然后被 bootloader 寫到目標(biāo)機(jī)上的 FLASH 類固態(tài)存儲設(shè)備中。 Bootloader 的這種模式通常在第一次安裝核與根文件系統(tǒng)時使用;此外,以后的系統(tǒng)更新也會使用 bootloader 的這種工作模式。工作于這種模式下

36、的 bootloader 通常都會向它的中斷用戶提供一個簡單的命令行接口。(5)Bootloader 的功能擴(kuò)展Bootloader 最主要的功能是引導(dǎo)加載核鏡像。但是隨著嵌入式系統(tǒng)的發(fā)展,bootloader 已經(jīng)逐漸在基本功能的基礎(chǔ)上,進(jìn)行了擴(kuò)展,bootloader 可以更多地增加對具體系統(tǒng)的板級支持,即增加一些硬件模塊功能上的使用支持,以方便開發(fā)人員進(jìn)行開發(fā)和調(diào)試。從這個層面上看,功能擴(kuò)展后的 bootloader 可以虛擬地看成是一個微小的系統(tǒng)級的代碼包。4.1.2 ST2410 的 Bootloader 功能說明以上介紹了一般嵌入式系統(tǒng)中的 Bootloader 的特點(diǎn)。 如前所述

37、,對于不同的目標(biāo)板和外圍硬件電路,Bootloader 的設(shè)計(jì)是不一樣的。本系統(tǒng)的 Bootloader 除了具有一般的功能外,還具有以下擴(kuò)展功能:(1) USB 口文件下載(2) 串口文件下載(3) NOR 和 NAND FLASH 的燒寫(4) 運(yùn)行存儲在 FLASH 中的程序(5)針對Linux設(shè)置啟動參數(shù)(6)設(shè)置Wince或Linux的自啟動(7)運(yùn)行BenQ M22 GPRS通訊系統(tǒng)ST2410 的 Bootloader 的流程圖,如圖 4.1 所示圖4.1 Bootloader流程圖構(gòu)如前所述,此核心板一共由三大存儲設(shè)備 Nor Flash(2M) Nand Flash(64M)

38、 SDRAM(64M)。前兩個 Flash 設(shè)備就猶如 PC 機(jī)的兩塊硬盤,(由于 Nand Flash 無論在價格與性能上都優(yōu)于 Nor Flash,因此現(xiàn)在一般都采用 Nand Flash。)而 SDRAM 就猶如 PC 機(jī)的存設(shè)備。4.2 串口通訊程序的設(shè)計(jì)如前所述,本系統(tǒng)有三大模塊:PC 機(jī):主要負(fù)責(zé)人機(jī)交互。在 PC 機(jī)上運(yùn)行 DNW(一種串口調(diào)試軟件),從而可以顯示和接受來自 ARM 的數(shù)據(jù)。ARM 微處理器:核心處理器。將已經(jīng)編寫成功的 GPRS 通訊程序燒寫到其 Nand Flash 中。M22 通訊模塊:GPRS 通訊的具體實(shí)現(xiàn)。接受來自 ARM 的 AT 指令,從而進(jìn)行 G

39、PRS 通訊,并將有用的信息反饋給 ARM。4.3 BenQ M22 模塊部的軟件特性下面我們來描述一下 BenQ M22 模塊部集成的軟件系統(tǒng)。對于無線 PSTN 的用戶,BenQ 提供 AT 指令的支持。BenQ M22 的部集成的軟件包括以下 3 個部分:Layer 1 驅(qū)動協(xié)議棧/AT 命令基本接口由于在無線 PSTN 和 BenQ M22 模塊中都有微處理器,在這兩者之間的接口通常是 AT 指令。當(dāng)然由于協(xié)議棧(TCP/IP)的存在,我們也可以通過發(fā)送 AT 指令達(dá)到聯(lián)通 GSM/GPRS 網(wǎng)的目的。5 模塊軟件運(yùn)行流程圖圖 5.1 軟件主菜單流程圖圖 5.2 外電呼入時流程圖圖 5.3 發(fā)送短信流程圖圖 5.4 本查詢流程圖圖 5.5 主動呼叫流程圖6 模塊設(shè)計(jì)總結(jié)計(jì)算機(jī)發(fā)展的目標(biāo)是專用電腦,實(shí)現(xiàn)“普遍化計(jì)算”,因此可以稱嵌入式系統(tǒng)是構(gòu)成未來世界的“數(shù)字基因”。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論