【正文】
272828292930303131323233333434353536363737383839394040J P 1C O N 2 * 2 0模塊插板 SIM 卡電路 SIM 卡電路電源為 MG2639V_CARD 輸出電壓提供, MG2639 支持。由于 SIM 卡的設計需要滿足 ESD 電氣性能,防止環(huán)境下 ESD 損壞 SIM 卡的情況,故本設計在 4 路 SIM 卡信號上都加上了 TVS 器件。并且在 4 路 SIM 卡信號上都加了電容值為 22PF 的濾波電容。減少信號的干擾。 CLK 為 SIM 卡的時鐘 , DATA 為 SIM 卡的數(shù)據(jù),RST 為 SIM 卡的 工 作復位信號。 圖 模塊電路 19 G N D1V P P2D A T A3C L K4R S T5V C C6S IM _ C A R DU7S IMR 3 151R 3 3 7 .5 KR 3 251C 2 92 2 PC 3 12 2 PC 3 22 2 PC 3 02 2 PC 3 32 2 PC A R D _ C L KC A R D _ R S TV _ C A R DV _ C A R D C A R D _ R S TC A R D _ C L K C A R D _ D A T AC A R D _ D A T A123 456D 1 1U C 0 5 0 4 A 存儲模塊電路設計 存儲模塊電路采用鐵電存儲,所用芯片為 FM24CL64,它具有 64K的非易失 RAM。它是以 I2C 總線的方式進行讀寫訪問??梢赃M行寫保護設置。更高的擦寫次數(shù)和強度,更快作出的 FRAM 寫入比 EEPROM 更具優(yōu)越性,也是選擇鐵電存儲的原因之一。鐵電存儲有以下特點: 數(shù)據(jù)的收集方面。在實際應用中的數(shù)據(jù)收集和保存, FRAM 提供了一個更優(yōu)越的解決方案。它比電池備份的 SRAM 更具成本效益,而且提供比 EEPROM 更好的寫屬性。 高噪聲環(huán)境。寫入 EEPROM 可以挑戰(zhàn)任何嚴重的噪聲或電源波動的環(huán)境。目前,長時間的 EEPROM 寫時間可能導致寫損壞, FRAM 的寫入時間可以在一微秒內(nèi)快速完成。通常這個時間要比噪聲或電源波動擾亂的時間短得多。 維修跟蹤。在復雜的系統(tǒng)中,維修信息更需要被加快記錄。由于高圖 SIM卡外圍電路 20 擦寫次數(shù), FRAM 作出理想的系統(tǒng)日志。此外, 2 線的 FM24CL64 接口允許內(nèi)存分布在整個最小系統(tǒng)中使用。 鑒于鐵電存儲的上述優(yōu)點,故本系統(tǒng)采用 FM24CL64 存儲登錄參數(shù)等相關(guān)配置。 在圖 中 A0、 A A2 接地,確定了器件地址。 FMWP 接高電平時寫保護。 FMWP 接低電平時可進行寫操作。 F M SD AF M SC LV C C _ F M W PA01A12A23V S S4V D D 8WP 7S C L 6S D A 5U8F M 24 C L6 4C 1 31 04 圖 鐵電存儲電路 21 4 軟件 程序 設計 軟件總體設計主流程 本文軟件設計部分,主要按照系統(tǒng)工作過程進行的設計。首先是對LPC2132 涉及到的各功能部分進行初始化設置,包括主頻、串口、定時器、I2C 總線。其次是對 GPRS 登陸參數(shù)進行設置,包括連接的 IP 和相應的端口號。最后建立 TCP 服務器鏈接,進入 TCP 工作模式,完成上下行數(shù)據(jù)的透明傳輸。以下為具體流程圖。 開 始L P C 2 1 3 2 I / O 口 初 始 化L P C 2 1 3 2 U A R T 串 口 初 始 化L P C 2 1 3 2 定 時 器 初 始 化中 斷 初 始 化C P U 主 頻 基 本 設 置 初 始 化建 立 T C P 連 接N OI 2 C 0 初 始 化登 陸 參 數(shù) 設 置讀 取 登 錄 參 數(shù)存 儲 登 錄 參 數(shù)是 否 有 數(shù) 據(jù) 傳 輸Y E SN O是 否 是 只 有 上 行 數(shù) 據(jù)是 否 有 1 0 分 鐘 無 數(shù) 據(jù) 傳 輸Y ESN O發(fā) 送 心 跳Y E S是 否 是 只 有 下 行 數(shù) 據(jù)Y E SN O是 否 是 同 時 有 上 下 行 數(shù) 據(jù)發(fā) 送 上 行 數(shù) 據(jù) 發(fā) 送 下 行 數(shù) 據(jù)發(fā) 送 下 行 數(shù) 據(jù)發(fā) 送 上 行 數(shù) 據(jù)Y E SN O判 斷 是 否 有 數(shù) 據(jù) 傳 輸執(zhí) 行 看 門 狗 喂 狗 程 序清 除 定 時 器復 位 定 時 器 中 斷 地 址置 位 接 受 數(shù) 據(jù) 標 志 位Y E SN O定 時 器 中 斷 入 口退 出 中 斷接 收 中 斷 入 口退 出 中 斷判 斷 數(shù) 據(jù) 是 否 可 用清 定 時 器復 位 U A R T 中 斷 地 址緩 存 是 否 有 空 間存 儲 接 收 數(shù) 據(jù)放 棄 數(shù) 據(jù)N OY E SY E SN O 圖 系統(tǒng)主流程圖 22 系統(tǒng)初始化 系統(tǒng)中斷初始化 ARM7 中斷為 向量中斷,向量中斷控制器( VIC) 具有 32 個中斷請求輸入,可將其編程分為 3 類: FIQ、 向量 IRQ 和非向量 IRQ。 可編程分配機制意味著不同外設的中斷優(yōu)先級可以動態(tài)分配并調(diào)整??焖僦袛嗾埱螅?FIQ)具有最高優(yōu)先級 。 向量 IRQ 具有中等優(yōu)先級。該級別可分配 32個中斷中的 16 個。 32 個請求中的任意一個都可分配到 16 個 向量 IRQ slot中的任意一個。其中 slot0 具有最高優(yōu)先級,而 slot15 則為最低優(yōu)先級。 非向量 IRQ 的優(yōu)先級最低。 VIC 將所有向量和非向量 IRQ“相或 ”向 ARM 處理器產(chǎn)生 IRQ 信號。 IRQ 服務程序可通過讀取 VIC 的一個向量地址寄存器跳到相應地址。 如果有任意一個向量 IRQ 發(fā)出請求, VIC 則提供最高優(yōu)先級請求 IRQ 服務程序的地址,否則提供所默認程序的地址。 中斷程序的初始化是對系統(tǒng)內(nèi)需要用到的中斷進行包括優(yōu)先級及其中斷程序入口地址的初始化,首先是選擇中斷類型,本系統(tǒng)中所有中斷一律選擇為向量中斷,然后使能相應的中斷, LPC2132 為每一個 中斷源提供一個通道號。在中斷控制寄存器 015 中寫入中斷通道號,中斷控制寄存器 0中的中斷優(yōu)先級最高。以此來設定各中斷源的優(yōu)先級。最后在相應的 向量地址寄存器中寫入 32 位中斷程序入口地址。中斷服務程序就會在 向量地址寄存器中讀出, 并在每次中斷程序執(zhí)行完畢后清零 向量地址寄存器來結(jié)束中斷程序。本系統(tǒng)中斷初始化程序如圖 。 23 將中斷全部分配成向量 I RQ 中斷VI CI n tSe le c t = 0 X 00000000 。使能中斷請求 UAR T 0 / UAR T 1 / IIC / T 0 ,VI CI n tE n a b le = 0 x 000002 D 0設置中斷向量控制寄存器UAR T 0 中斷 VI CV e c tC n tl 0 = 0 x 00000026UAR T 1 中斷 VI CV e c tC n tl 1 = 0 x 00000027IIC 中斷 VI CV e c tC n tl 2 = 0 x 00000029T 0 中斷 VI CV e c tC n tl 3 = 0 x 00000024設置中斷向量地址寄存器UAR T 0 中斷 VI CV e c tA d d r 0 = 0 x 00000026UAR T 1 中斷 VI CV e c tA d d r 1 = 0 x 00000027IIC 中斷 VI CV e c tA d d r 2 = 0 x 00000029T 0 中斷 VI CV e c tA d d r 3 = 0 x 00000024結(jié)束開始 主頻配置 主頻的配置其實是對 PLL(鎖相環(huán))進行設定達到系統(tǒng)需要的系統(tǒng)主頻, PLL 接受的輸入時鐘頻率范圍為 10MHz~25MHz。輸入頻率通過一個電流控制振蕩器( CCO)倍增到范圍 10MHz~60MHz( CPU 頻率范圍) 。倍頻器可以是從 1 到 32 的整數(shù)(實際上,由于 CPU 最高頻率的限制, LPC2132 的 倍 頻 值 不 能 高 于 6 )。 CCO 的 操 作 頻 率 范 圍 為 156MHz~320MHz,因此在環(huán)中有一個 PLL 提供所需要的輸出頻率使 CCO 保持在頻率范圍內(nèi)。輸出分頻器可設置為 2, 4, 8 或 16, 由于輸出分頻器的 最小值為 2,它保證了 PLL 輸出有 50%的占空比。 PLL 的激活圖 中斷初始化流程圖 24 由 PLLCON 寄存器控制。 PLL 倍頻器和分頻器的值由 PLLCFG 寄存器控制。為了防止 PLL 參數(shù) 改 變或 PLL 失效,對這兩個寄存 器進行了保護。對它們的保護由一個類似于操作看門狗定時器的代碼序列來實現(xiàn)。對 PLLFEED 寄存器的操作可以實現(xiàn)這一序列。 PLL 只能通過軟件使能。程序必須在配置并激活 PLL 后等 待其鎖定,然后作為時鐘源連接到 PLL。 FOSC 是 晶振頻率, FCCO 是 PLL 電流控制振蕩器的頻率 , cclk 是PLL 輸出頻率(也是處理器的時鐘頻率), M 為 PLLCFG 寄存器中 MSEL位的倍增器值, P 為 PLLCFG 寄存器中 PSEL 位的分頻器值。 PLL 輸出頻率(當 PLL 激活并連接時)由下式得到: cclk = M * FOSC 或 cclk= FCCO / (2*P) , CCO 頻率可由下式得到: FCCO = cclk * 2 * P 或 FCCO = FOSC * M * 2 * P 。 PLL 輸入和設定必須滿足下面的條件: FOSC 的范圍:10MHz~25MHz 、 cclk 的范圍: 10MHzFmax( LPC2131/2132/2138 的最大允許頻率)、 FCCO 的范圍: 156MHz320MHz。 經(jīng)過細致考慮,為 了讓系統(tǒng)在比較快的主頻下運行,主頻定為。根據(jù)公式計算的 M=4, P=2。外設工作頻率由 VPB 分頻器決定??赏ㄟ^ VPBDIV設置。默認設置下,外設頻率是主頻的 1/4。所以程序流程如圖 。 25 PL L 控制寄存器 PL L 使能連接 PL L CO N = 0 X 03PL L 配置寄存器 M = 4 ,P = 2 ,PL L CFG = 0 X 23饋送序列寫入PL L FE E D = 0 XAAPL L FE E D = 0 X 55結(jié)束開始 UART 初始化 ARM 提供兩個全雙工的串口,串口的初始化主要是串口接受中斷的初始化。串口的初始化一是要設置串口通信的波特率,二是要設置發(fā)送接受的字符格式,三是要使能接收中斷。 對于 LPC2132 串口的波特率的設置,需要設置 UART 的除數(shù)鎖存器。除數(shù)鎖存是 UART0 波特率發(fā)生器的一部分,它保存了用于產(chǎn)生波特率時鐘的 VPB 時鐘( pclk)分頻值, 波特率時鐘必須是波特率的 16 倍。 U0DLL和 U0DLM 寄存器一起構(gòu)成一個 16 位除數(shù), U0DLL 包含除數(shù)的低 8 位。當訪問 UART0 除數(shù)鎖 存寄存器時, U0LCR 中的除數(shù) 鎖存訪問位( DLAB)必須為 1。本系統(tǒng)的串口波特率設置為 115200bps,數(shù)據(jù)格式為 8 位數(shù)據(jù)位、1 位停止位、無奇偶校驗。 FIFO 接受觸點為 1 個字節(jié)。初始化流程如圖 。 圖 主頻設置流程圖 26 設 置 波 特 率 為 1 1 5 2 0 0U 0 D L L = 0 X 0 6U 0 D L M = 0 X 0 0中 斷 使 能 U 0 I E R = 0 X 0 7F I F O 使 能 , 觸 發(fā) 點 0 一 個 字 符U 0 F C R = 0 X 0 18 位 字 符 長 度 1 位 停 止 位 無 奇 偶檢 驗 U 0 L C R = 0 X 0 3U 0 L C R = 0 X 8 3結(jié) 束開 始 定時器初始化 LPC2132 帶可編程 32 位預分頻器的 32 位定時器 /計數(shù)器。 4 個 32 位的匹配通道, 4 個 32 位匹配寄存器, 4 個對應于匹配寄存器的外部輸出。定時器初始化一般過程為,設置工作模式、設置預分頻寄存器的值、設置匹配寄存器的值、選擇是匹配動作還是匹配中斷、然后啟動定時器。根據(jù)本設計的要求,定時器工作在計時狀態(tài),當定時器計數(shù)器達到匹配寄存器值時,進入中斷進行中斷處理。流程圖如圖 所示。 圖 UART初始化