版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2013 第九屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式物聯(lián)網(wǎng)設(shè)計(jì)大賽作品設(shè)計(jì)報(bào)告 基于 GPS 授時(shí)的點(diǎn)陣 LED 屏顯示時(shí)鐘A LED Clock Based on GPS設(shè) 計(jì) 報(bào) 告 隊(duì)伍編號(hào): 參賽學(xué)校:大學(xué) 作 者:蔡成瑤、嚴(yán)帥、照 指導(dǎo)教師:凱 是否恩智浦單項(xiàng):是 否摘摘 要要 1 / 35本設(shè)計(jì)采用了大賽指定硬件開(kāi)發(fā)平臺(tái): NXP LPC11C24FB(ARM Cortex-M0 微控制器 ),設(shè)計(jì)了 GPS 授時(shí)的點(diǎn)陣 LED 屏?xí)r鐘顯示系統(tǒng)。系統(tǒng)從 GPS 衛(wèi)星上獲取標(biāo)準(zhǔn)的時(shí) 鐘信號(hào),并將這些信息通過(guò) UART 接口傳到 LPC11C24 主控模塊 上,再通過(guò) LED 點(diǎn)陣屏將經(jīng)過(guò) LP
2、C11C24 處理后的時(shí)間信息顯示出來(lái)。 如果 UART 未收到 GPS 數(shù)據(jù)則系統(tǒng)將采用 LPC11C24 的部定時(shí)器計(jì)時(shí), 該設(shè)計(jì)以軟硬件相結(jié)合的方式完成整個(gè)GPS 數(shù)據(jù)的接 收和顯示過(guò)程完成了一臺(tái) LED 點(diǎn)陣屏顯示 GPS 時(shí)鐘的設(shè)備。此設(shè)計(jì)由于使用的是 GPS 時(shí)鐘信號(hào),所以時(shí)間精確度可以達(dá)到納秒級(jí),同時(shí)結(jié)合了點(diǎn)陣LED 屏,就使得系統(tǒng)整體顯示效果好。關(guān)鍵詞:關(guān)鍵詞: LPC11C24、 GPS、 LED 點(diǎn)陣屏AbstractAbstractNXP LPC11C24(Cortex M0 micro controller)is used as the specified hardwa
3、re platform in the design ofthe GPS timing lattice LED clock display system .System standard for the clock signal from GPS satellites, and upload the information through the UART interface LPC11C24 master control module, through the LED lattice screen will be displayed after LPC11C24 processing time
4、 information. If UART is not received GPS data system will adopt LPC11C24 internal timer timing, the design with a combination of hardware and software to complete the whole process of GPS data receiving and display completed a LED dot matrix screen GPS clock device. This design is due to the use of
5、 GPS clock signal, so the precision can reach nanosecond time, combined with lattice LED screen at the same time, makes the system as a whole display effect is better.Keyword:LPC11C24、 GPS、 LEDLatticescreen 2 / 35目錄目錄摘要摘要 1 1目錄目錄 2 2第一章緒論第一章緒論 4 41.11.1 設(shè)計(jì)背景設(shè)計(jì)背景 4 41.21.2 ARMARM CORTEX-M0CORTEX-M0 處
6、理器處理器 4 4第二章系統(tǒng)方案第二章系統(tǒng)方案 5 52.12.1 系統(tǒng)總體方案系統(tǒng)總體方案 5 52.22.2 系統(tǒng)方案結(jié)構(gòu)圖系統(tǒng)方案結(jié)構(gòu)圖 5 5第三章基于第三章基于 GPSGPS 授時(shí)的點(diǎn)陣授時(shí)的點(diǎn)陣 LEDLED 屏顯示時(shí)鐘的系統(tǒng)屏顯示時(shí)鐘的系統(tǒng) 6 63.13.1 NXPNXP LPC11C24LPC11C24 主控板主控板 6 63.1.1 NXP LPC11C24 簡(jiǎn)介 63.1.2 開(kāi)發(fā)環(huán)境 73.1.3 LPCXPRESSO的項(xiàng)目建立 83.23.2 點(diǎn)陣點(diǎn)陣 LEDLED 屏顯示模塊屏顯示模塊 8 83.2.1 P10 LED 點(diǎn)陣屏電路圖 93.2.2 P10 LED 點(diǎn)
7、陣顯示屏的指標(biāo) 93.2.3 LED 點(diǎn)陣屏上控制 LED 的亮滅原理 103.2.4 LED 點(diǎn)陣屏的動(dòng)態(tài)掃描原理 103.2.5 主控模塊 LPC11C24 與 LED 點(diǎn)陣屏的引腳連接 113.2.6 LED 點(diǎn)陣屏的顯示的軟件設(shè)計(jì) 123.2.6.1 控制 LED 亮滅的設(shè)計(jì)過(guò)程 133.2.6.2LED 點(diǎn)陣屏的動(dòng)態(tài)掃描設(shè)計(jì)過(guò)程 14BUF緩沖區(qū)數(shù)據(jù)組織 153.2.7 時(shí)鐘顯示秒的控制 193.33.3 GPSGPS 衛(wèi)星數(shù)據(jù)接收模塊衛(wèi)星數(shù)據(jù)接收模塊 GR-87GR-8720203.3. 3.1GPS3.1GPS 技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介 20203.3.2 GR-87213.3.3 引腳
8、功能 21GR-87 指標(biāo) 223.3.4 硬件接口UART233.3.5 通信協(xié)議 NMEA243.3.5 主控模塊 LPC11C24 與 GR-87 的連接 243.3.6 UART 接收 GPS 數(shù)據(jù)軟件設(shè)計(jì) 253.43.4 供電電源的選擇供電電源的選擇 2929第四章系統(tǒng)測(cè)試第四章系統(tǒng)測(cè)試 29294.14.1 測(cè)試儀器和設(shè)備測(cè)試儀器和設(shè)備 2929 3 / 354.24.2 測(cè)試方案測(cè)試方案 30304.2.1 LED 點(diǎn)陣屏顯示測(cè)試 304.2.2 GPS 通信測(cè)試 304.2.3 NXP LPC11C24 測(cè)試 304.2.4 系統(tǒng)綜合測(cè)試 304.34.3 測(cè)試測(cè)試 3030
9、4.3.1 LED 點(diǎn)陣屏顯示測(cè)試 304.3.2 GPS 通信測(cè)試 314.3.3 系統(tǒng)綜合測(cè)試 324.3.4 結(jié)果分析 32第五章系統(tǒng)特色第五章系統(tǒng)特色 33335.15.1 高精度的時(shí)鐘信號(hào)高精度的時(shí)鐘信號(hào) 33335.25.2 LEDLED 點(diǎn)陣屏特色點(diǎn)陣屏特色 3333第六章結(jié)論第六章結(jié)論 3434附錄附錄 3434第一章第一章 緒論緒論1.11.1 設(shè)計(jì)背景設(shè)計(jì)背景隨著社會(huì)的進(jìn)步人們對(duì)于時(shí)間信號(hào)的精度要求越來(lái)越高,而 傳統(tǒng)的時(shí)鐘一般是采用部晶振精確度不高,長(zhǎng)期運(yùn)行過(guò)程中由于種種原因都會(huì)產(chǎn)生誤差已經(jīng)不能滿足工業(yè)生產(chǎn)的需要,因此我們要尋找一種穩(wěn)定可靠的方法來(lái)來(lái)產(chǎn)生精確的時(shí)鐘。使用 原
10、子鐘可以使時(shí)間精度達(dá)到納秒級(jí),所以在科學(xué)技術(shù)領(lǐng)域、人們?nèi)粘5纳钌a(chǎn)領(lǐng)域都可以廣泛的運(yùn)用 “原子鐘” 。另外,LED 顯示屏是利用發(fā)光二級(jí)管點(diǎn)陣模塊組成的平面式顯示屏幕由于它具有發(fā)光率高、使用壽命長(zhǎng)、組態(tài)靈活、適應(yīng)能力強(qiáng)等優(yōu)點(diǎn)在國(guó)外的到廣泛應(yīng)用。 基于 GPS 授時(shí)的點(diǎn)陣 LED 屏顯示時(shí)鐘就是利用 GR-87 接收衛(wèi)星上“原子鐘”精確的時(shí)間信號(hào)傳送給 LPC11C24,經(jīng)過(guò) LPC11C24 處理后發(fā)往點(diǎn)陣 LED 顯示屏并顯示出時(shí)間。 4 / 351.21.2 ARMCortex-M0ARMCortex-M0 處理器處理器作為 ARM Cortex 處理器系列的最新成員, 32 位 Cor
11、tex-M0 處理器采用了低成本 90 納米低功耗(LP)工藝,耗電量?jī)H 9A/MHz,約為目前主流 8 位或 16 位處理器的三分之一,卻能提供更高的性能。這種行業(yè)領(lǐng)先的低功耗和高性能的結(jié)合為仍在使用8 位或 16 位架構(gòu)的用戶提供了一個(gè)轉(zhuǎn)型開(kāi)發(fā) 32 位器件的理想機(jī)會(huì),從而在不犧牲功耗和面積的情況下,提高日常設(shè)備的智能化程度。Cortex-M0 處理器的特點(diǎn)促成了智能、低功耗微控制器的面市,并為 “物聯(lián)網(wǎng)”量的無(wú)線連接設(shè)備提供高效的溝通、管理和維護(hù)。低功耗聯(lián)網(wǎng)功能深具潛能,可驅(qū)動(dòng)各種節(jié)能和生活關(guān)鍵應(yīng)用,包括從無(wú)線方式分析住宅或辦公大樓性能與控制的感測(cè)器,到以電池運(yùn)作、通過(guò)無(wú)線方式連接監(jiān)控設(shè)
12、備的身體感測(cè)器。而現(xiàn)有的 8 位或 16 位微控制器(MCU)缺少足夠的智能和功能來(lái)實(shí)現(xiàn)這些應(yīng)用。Cortex-M0 處理器不僅延續(xù)了易用性、 C 語(yǔ)言編程模型的優(yōu)勢(shì),而且能夠二進(jìn)制兼容已有的Cortex-M0 處理器工具和實(shí)時(shí)系統(tǒng)( RTOS)。作為 Cortex-M 處理器系列的一員, Cortex-M0 處理器同樣能夠獲得 ARM Cortex-M 生態(tài)系統(tǒng)的全面支持,而其軟件兼容性使其能夠方便地被移植到更高性能的 Cortex-M3 或 Cortex-M4 處理器。率先獲得 Cortex-M0+處理器授權(quán)的廠商包括飛思卡爾半導(dǎo)體和恩智浦半導(dǎo)體。第二章第二章 系統(tǒng)方案系統(tǒng)方案2.12.1
13、 系統(tǒng)總體方案系統(tǒng)總體方案本系統(tǒng)利用 NXP LPC11C24 作為主控模塊。首先從 GPS 系統(tǒng)獲取全球標(biāo)準(zhǔn)時(shí)間源,經(jīng)過(guò) CPU 處理后將時(shí)間數(shù)據(jù)通過(guò) UART 接口輸出到 LPC11C24 主控模塊上,LPC11C24 可把接收到的 GPS 時(shí)間數(shù)據(jù)利用軟件來(lái)處理,再把數(shù)據(jù)發(fā)送到顯示模塊,實(shí)現(xiàn)時(shí)間的顯示。 LED 點(diǎn)陣屏為主要的顯示模塊,把從 LPC11C24 傳來(lái)的數(shù)據(jù)顯示出來(lái),并且可以實(shí)現(xiàn)左右移動(dòng)等功能。 5 / 352.22.2 系統(tǒng)方案結(jié)構(gòu)圖系統(tǒng)方案結(jié)構(gòu)圖根據(jù)總體方案畫(huà)出了系統(tǒng)的結(jié)構(gòu)圖,是按照結(jié)構(gòu)層次劃分三層: 硬件平臺(tái) NXP LPC11C24 為核心,同 UART 連接的是 G
14、PS 模塊,32*16 的點(diǎn)陣屏是用杜邦線和和控制系統(tǒng)相連的。整體方案結(jié)構(gòu)框圖如下:GPS模塊32*16LED 點(diǎn)陣屏系統(tǒng)控制中心NXPLPC11C24核心板電路UART串口杜 邦 線電源供電模塊行驅(qū)動(dòng)電路列驅(qū)動(dòng)電路圖 2.1 系統(tǒng)總體方案結(jié)構(gòu)圖第三章第三章 基于基于 GPSGPS 授時(shí)的點(diǎn)陣授時(shí)的點(diǎn)陣 LEDLED 屏顯示時(shí)鐘屏顯示時(shí)鐘的系統(tǒng)的系統(tǒng)3.13.1 NXPNXP LPC11C24LPC11C24 主控板主控板LPC11C24 為核心控制芯片,工作過(guò)程分為兩個(gè)部分 :數(shù)據(jù)接受處理和時(shí)鐘數(shù)據(jù)掃描顯示。LPC11C24 開(kāi)發(fā)板部集成了串口通信電路,本設(shè)計(jì)就是應(yīng)用UART 通用串行數(shù)據(jù)接
15、口接受外部GR-87 發(fā)來(lái)的衛(wèi)星數(shù)據(jù),有選擇的將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)緩沖區(qū),然后我們將緩存區(qū)里的數(shù)據(jù)取出經(jīng)過(guò)CPU 的處理后送到 LED 點(diǎn)陣顯示屏上顯示出我們所需要的時(shí)鐘信息。3.1.13.1.1 NXPNXP LPC11C24LPC11C24 簡(jiǎn)介簡(jiǎn)介L(zhǎng)PC11C24FBD48 是 ARM Cortex-M0 微控制器,設(shè)計(jì)用于 8 位/16 位微控制器應(yīng)用, 具有高新能, 6 / 35低功耗,簡(jiǎn)單指令集,統(tǒng)一編址尋址等優(yōu)點(diǎn),而且, LPC11C24 可以比傳統(tǒng)的 8 位/16 位單片機(jī)在執(zhí)行大多數(shù)普通的微控制器任務(wù)時(shí)減少 40%到 50%的代碼量,這是通過(guò)強(qiáng)大的 Cortex-M0 v6-M
16、指令集實(shí)現(xiàn)的。這種指令集以 16 位的 Thumb 指令為基礎(chǔ),迄今唯一應(yīng)用于 32 位微處理器。具有高于 45DMIPS 處理能力的 LPC11C24 為 CAN 節(jié)點(diǎn)提供了強(qiáng)有力的信息和數(shù)據(jù)處理能力。這種對(duì)電源的優(yōu)化能力是當(dāng)今的 8 位/16 位單片機(jī)難以實(shí)現(xiàn)的特色和優(yōu)點(diǎn)ARM Cortex-M0 處理器,工作頻率高達(dá) 50 MHzARM Cortex-M0 置可嵌套中斷向量控制器 (NVIC)程序代碼的密度要比 8/16 位 MCU 更小閃存 ISP 命令可通過(guò) UART 或 C_CAN 發(fā)出超快速模式下, 2 個(gè) IC 總線引腳上的大電流吸收驅(qū)動(dòng)器 (20 mA)帶小數(shù)波特率生成器的
17、UART36 個(gè)高速 5V 相容 GPIO 引腳,可選擇引腳高電流驅(qū)動(dòng)( 20 mA)12MHz 部 RC 振蕩器,溫度與電壓圍精確度可達(dá) 1%支持完整 IC 總線規(guī)與超快速模式的 IC 總線接口CAN 2.0 B C_CAN 控制器具備 on-chip CANopen 驅(qū)動(dòng)器與整合式收發(fā)器 片高速 CAN 收發(fā)器工作圍從 1 MHz 到 25 MHz 的晶體振蕩器頻率圍從 7.8 kHz 到 1.8 MHz 的可編程看門狗振蕩器最大限度降低功耗的集成式 PMU(電源管理單元)采用中斷和強(qiáng)制復(fù)位的 4 個(gè)獨(dú)立閥值進(jìn)行的掉電檢測(cè)可用作芯片識(shí)別的唯一序列號(hào)3.3 V 單電源(1.8 V 至 3.6
18、 V)3.1.23.1.2 開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境 7 / 35此次設(shè)計(jì)的軟件開(kāi)發(fā)環(huán)境使用的大賽的合作方恩智浦半導(dǎo)體針對(duì)它旗下采用的ARM 處理器的LPC 系列微控制器推出的開(kāi)發(fā)工具平臺(tái) LCXpresso。LCXpresso 根據(jù)簡(jiǎn)單易用的理念設(shè)計(jì)而成, 它為系統(tǒng)設(shè)計(jì)人員提供了一種快速便捷的使用 LPC1100 的方式。利用 LPCXpresso 這款功能全面的工具鏈還可以輕松實(shí)現(xiàn)在高性能的 ARM7、ARM9 以與包括 LPC1300 和 LPC1700 在的 Cortex 系列微控制器之間的產(chǎn)品移植。 LPCXpresso 開(kāi)發(fā)平臺(tái)基于功能強(qiáng)大的 Eclipse 集成開(kāi)發(fā)環(huán)境( IDE)工具,
19、擁有由恩智浦設(shè)計(jì)的全新、直觀的用戶界面、針對(duì) Cortex-M0 優(yōu)化的編譯器和函數(shù)庫(kù)、 LPC-Link JTAG/SWD 調(diào)試探針和目標(biāo)板,同時(shí)具有一流的 C 編程環(huán)境以與語(yǔ)法高亮度顯示、代碼折疊和展開(kāi)、快速點(diǎn)擊導(dǎo)航變量和函數(shù)定義與聲明的高級(jí)功能, 為用戶提供豐富的開(kāi)發(fā)工具,加速產(chǎn)品開(kāi)發(fā),縮短新品上市時(shí)間。3.1.33.1.3 LPCXpressoLPCXpresso 的項(xiàng)目建立的項(xiàng)目建立1打開(kāi) LPCxpresso 軟件彈出 workspace launcher 對(duì)話框選擇項(xiàng)目要放的文件夾2.菜單欄 FILE-new-project 彈出 new project 對(duì)話框選擇 LPCxpr
20、esso c project-next 再選擇 lpc 11xx- c progect next -在 project neme 中輸入項(xiàng)目名稱 -netx -選擇lpc11c24/301next在 cmsis library to link project to:中選擇 NONE - finish3這樣項(xiàng)目就建立好了,在編譯過(guò)程中缺什么頭文件就去示例文件夾中復(fù)制到SRC 文件夾下就可以了3.23.2 點(diǎn)陣點(diǎn)陣 LEDLED 屏顯示模塊屏顯示模塊這次我們選用的是 P10 LED 成品屏。P10 LED 點(diǎn)陣顯示屏作為此次設(shè)計(jì)的數(shù)據(jù)顯示模塊,它的作用就是將從緩沖區(qū)里取出的數(shù)據(jù)經(jīng)過(guò) CPU 的處理
21、后顯示出我們所需要的信息。我們可以利用LPC11C24 的 GPIO 端口控制 LED 點(diǎn)陣屏顯示相應(yīng)的信息。 8 / 353.2.13.2.1 P10P10 LEDLED 點(diǎn)陣屏電路圖點(diǎn)陣屏電路圖下圖是 P10 LED 點(diǎn)陣屏的電路圖,其中 74HC245D 是驅(qū)動(dòng)放大芯片、74HC595 是移位寄存器、74HC138D 是譯碼器圖 4.2 P10 LED 點(diǎn)陣屏電路圖3.2.23.2.2 P10P10 LEDLED 點(diǎn)陣顯示屏的指標(biāo)點(diǎn)陣顯示屏的指標(biāo)LED 分辨率:LED 顯示屏像素的行列數(shù)稱為 LED 顯示屏的分辨率 ,我們所用的 P10 LED 點(diǎn)陣屏的分辨率是 32*16。LED 點(diǎn)距
22、: 10mm像素配置: 1R(純紅)視距: 3m300m3.2.33.2.3 LEDLED 點(diǎn)陣屏上控制點(diǎn)陣屏上控制 LEDLED 的亮滅原理的亮滅原理 9 / 35 通過(guò) P10 LED 屏的電路圖可以發(fā)現(xiàn),整個(gè)屏有通過(guò)一個(gè) 74HC138 來(lái)控制行和 16 個(gè) 74HC535 一位寄存器控制列。按正常理解 32*16 的 LED 點(diǎn)陣 2 個(gè) 138 和 16 個(gè) 595 才能控制整個(gè)屏。而這里只用了 1 個(gè) 138 是用了 4953LED 驅(qū)動(dòng)芯片,一個(gè) 138 輸出信號(hào)被分成了 4 個(gè)一樣的信號(hào)連接到了每個(gè)4*8 小模塊的 LED 的陽(yáng)極上這樣 138 輸出的 4 路信號(hào)就被分成了 1
23、6 個(gè)信號(hào),這 16 個(gè)信號(hào)中每 4 個(gè)一組一樣的信號(hào)共 4 組。這樣行就能全部控制了。因?yàn)槠辽?4*8 小模塊都配了一個(gè) 595 所以一次通過(guò) 595 輸入端通過(guò)移位可以輸入 16*8 位數(shù)據(jù)進(jìn)入 595 中。這就移位著當(dāng) 138 輸出高電平信號(hào),595 移位移入 128 個(gè) 0 進(jìn)去時(shí)這是屏就會(huì)顯示 4 行且這 4 行是隔 4 個(gè)亮一行。如果要只亮一個(gè)點(diǎn)只需把送入 595 的 128 中對(duì)應(yīng)的那一位寫(xiě) 0 其他 127 位寫(xiě) 1 就可以顯示一個(gè)點(diǎn)了。例如要讓下圖中第一行第一列的那個(gè) LED 亮,只需要 OUT1 送高電平,列 1 送入低電平即可。OUT1 端的高低電平由 74HC138 來(lái)
24、控制,而它陰極的電平高低則是由 74HC595 來(lái)控制。讓 138 輸出信號(hào)快速的輸出四個(gè)信號(hào),這時(shí)屏上顯示的就是點(diǎn)亮的那個(gè)點(diǎn)的所在的4*8 的小模塊中的亮點(diǎn)所在的列的 4 個(gè)點(diǎn)都亮了起了。這就是動(dòng)態(tài)掃描。后面還會(huì)詳細(xì)解釋。3.2.43.2.4 LEDLED 點(diǎn)陣屏的動(dòng)態(tài)掃描原理點(diǎn)陣屏的動(dòng)態(tài)掃描原理通過(guò)上面已經(jīng)可以把一個(gè)點(diǎn)點(diǎn)亮了,接下來(lái)就是要在屏幕上顯示要顯示的容了。如果138的輸出容不變只能顯示 4 行,只有把 138 輸出的容改變,且速度要快這樣 16 行就可以全部顯示出來(lái)了。這就是動(dòng)態(tài)掃描。比如我們要在左邊的 16*8 的區(qū)域顯示一個(gè)數(shù)字 “1”首先就要的編寫(xiě) “1”在 16*8 的區(qū)域
25、 10 / 35的 16 進(jìn)制編碼并放入一個(gè)數(shù)組中,這就是字庫(kù)。編寫(xiě)好字庫(kù)后還要再加一個(gè)64 字節(jié)的數(shù)據(jù)緩存區(qū)用來(lái)存放屏上所用點(diǎn)的數(shù)據(jù), 595 就從數(shù)據(jù)緩存區(qū)中取數(shù)據(jù)送去顯示。而緩存區(qū)中的容是從字庫(kù)通過(guò)算法加載進(jìn)去的?,F(xiàn)在我們把 “1”的數(shù)據(jù)放入數(shù)據(jù)緩存區(qū)中對(duì)應(yīng)顯示的地方。 595 取 128 位送入屏幕,這時(shí) 138 選擇的是 4*8 的第一行,這時(shí)在要顯示的 16*8 中亮了 1,5,9.13 行,接著595 再取下一行的 128 位數(shù)據(jù)送入屏,138 選中 4*8 的第二行。這時(shí)在要顯示的 16*8 中亮了2,6,10,14 行,依次類推共 4 次,就把 16*8 的所有行就都顯示了。
26、由于程序執(zhí)行速度很快,肉眼看不出切換所以就看到一個(gè)完整的 “1”了。這就實(shí)現(xiàn)了動(dòng)態(tài)掃描。3.2.53.2.5 主控模塊主控模塊 LPC11C24LPC11C24 與與 LEDLED 點(diǎn)陣屏的引腳連接點(diǎn)陣屏的引腳連接LPC11C24 引腳LED 點(diǎn)陣屏引腳+5VIN5V 供電電源GNDGNDP0_3OEP1_8SCLKP2_6RP2_7CLKP2_8BP2_10A圖 5.4 LED 點(diǎn)陣屏與 LPC11C24 引腳的連接圖LPC11C24 32*16LED點(diǎn)陣屏P0_3 P1_8P2_6 P2_7 P2_8 P2_10OESCLKRCLKBA 11 / 35LPC11C24 與 LED 點(diǎn)陣屏的
27、連接圖3.2.63.2.6 LEDLED 點(diǎn)陣屏的顯示的軟件設(shè)計(jì)點(diǎn)陣屏的顯示的軟件設(shè)計(jì)對(duì)于這個(gè)系統(tǒng)的軟件設(shè)計(jì)一開(kāi)始是我們是從控制LED 點(diǎn)陣屏的顯示入手,而為了防止在控制LED 顯示的初始階段燒壞 LPC11C24 開(kāi)發(fā)板以與更快的入手 LPC11C24 開(kāi)發(fā)板,我們首先決定先用51 單片機(jī)來(lái)寫(xiě)程序點(diǎn)亮控制 LED 點(diǎn)陣屏,在可以任意的控制 LED 屏的顯示之后再將程序移植到LPC11C24 開(kāi)發(fā)板上。而控制 LED 點(diǎn)陣屏的首要問(wèn)題就是點(diǎn)陣屏上每一行的亮滅是如何在單片機(jī)中實(shí)現(xiàn)的,接下來(lái)我們就試著去控制點(diǎn)陣屏的的每一個(gè)點(diǎn)的亮滅,直到可以控制任意點(diǎn)亮和滅。然后,我們?cè)倏紤]去讓點(diǎn)陣屏去顯示數(shù)字以與
28、在哪個(gè)位置去顯示,最后我們才再想方設(shè)法的使LED 點(diǎn)陣屏的不同位置顯示出我們想要顯示的數(shù)字而這又是最困難的一步,由于在一個(gè)時(shí)刻LED 點(diǎn)陣屏只能讓一塊顯示所以要想讓整個(gè)的屏都顯示不同的數(shù)字就使用到動(dòng)態(tài)掃描的技術(shù)。這里要真正實(shí)現(xiàn)動(dòng)態(tài)掃描則分為兩部分第一部分是 buf 數(shù)據(jù)緩存區(qū)的數(shù)據(jù)的動(dòng)態(tài)變化,第二部分是對(duì) LED 屏的行的動(dòng)態(tài)掃描??刂埔粋€(gè)點(diǎn)顯示控制一行顯示任意顯示數(shù)字 12 / 35圖 LED 點(diǎn)陣屏顯示設(shè)計(jì)思路程3.2.6.13.2.6.1 控制控制 LEDLED 亮滅的設(shè)計(jì)過(guò)程亮滅的設(shè)計(jì)過(guò)程首先我們是先通過(guò)看對(duì) P10 LED 點(diǎn)陣屏電路圖走線方式,電路的芯片的作用來(lái)理解電路。電路是用
29、74HC138 譯碼器和 74HC595 移位寄存器組合實(shí)現(xiàn)的,這樣就大概知道電路是如何工作的,我們就試著按自己的理解去連接的電路并給通過(guò)單片機(jī)控制LED 點(diǎn)陣屏,寫(xiě)了幾個(gè)程序發(fā)現(xiàn) LED 點(diǎn)陣屏上一直不亮,就考慮是否是硬件出了問(wèn)題,但是經(jīng)過(guò)測(cè)試后發(fā)現(xiàn)LED 屏的正負(fù)極是有 +5V 電壓的,并且 LED 的引腳同 51 單片機(jī)的連接也正確。只能是程序?qū)懙牟粚?duì),然后我們就上網(wǎng)查閱各種資料,包括 595 移位寄存器和 138 譯碼器的手冊(cè)、例程,通過(guò)查閱之后才對(duì) 595 和 138 的工作有了更進(jìn)一步的了解,我們之后又重新編寫(xiě)了一個(gè)程序和發(fā)現(xiàn)還是不能點(diǎn)亮LED 屏,問(wèn)了老師后才知道是我們對(duì) 595
30、 理解有誤,之后我們?cè)囍鴮?xiě)了一個(gè)程序發(fā)現(xiàn) LED 點(diǎn)陣屏果真亮了,但是 LED 燈都是在亂閃的,琢磨的一晚上也沒(méi)找到是什么原因,直到第二天問(wèn)了老師才發(fā)現(xiàn)是LED 屏和單片機(jī)沒(méi)有共地,我們找了一跟線將 LED 的地和單片機(jī)的地線連接起來(lái)這下屏上的顯示就穩(wěn)定了,但是是4 行一起亮的,看了原理圖后發(fā)現(xiàn) 138 的輸出信號(hào)又通過(guò) LED 驅(qū)動(dòng)芯片分出 4 個(gè)一樣的信號(hào),輸出的信號(hào)被用于控制 4 行,所以 16 行需要 4 個(gè) 138 譯碼輸出信號(hào),這樣 2 個(gè) 138 的輸入信號(hào)輸出 00、01、10、11 四個(gè)信號(hào),就能把整塊屏的 16 行給控制起來(lái)。 能夠控制行,還得能控制任意一個(gè)點(diǎn)。一開(kāi)始只知道
31、595 是如何工作的,就全送入 0,后來(lái)改 13 / 35變輸入 595 的 128 位,發(fā)現(xiàn)第一個(gè)送進(jìn)去的 0 會(huì)在 4 行中的最后一個(gè)點(diǎn)上,就理解了什么叫 “位顯示的先送”這句話,這樣就已經(jīng)能控制 128 位中的任意一點(diǎn)的亮和滅。3.2.6.2LED3.2.6.2LED 點(diǎn)陣屏的動(dòng)態(tài)掃描設(shè)計(jì)過(guò)程點(diǎn)陣屏的動(dòng)態(tài)掃描設(shè)計(jì)過(guò)程實(shí)際上,我們要做的遠(yuǎn)不止讓行和點(diǎn)亮起來(lái)這么簡(jiǎn)單,因?yàn)橐_的有限,我們只能用動(dòng)態(tài)掃描的方式來(lái)讓屏幕顯示全部的容,但是問(wèn)題有來(lái)了, 138 和 595 的組合輸入究竟是什么樣的。時(shí)序是如何組合在一起的,我們就試了一下發(fā)現(xiàn)屏上的顯示規(guī)律并不是我們想的那樣從左到右依次來(lái)的,而是 8
32、位一組從左下方開(kāi)始再到左上方,然后再?gòu)南路降耐? 位再往上依次類推,直到右上方。這樣就影響到了數(shù)據(jù)組織問(wèn)題,做到這里老師對(duì)我們提出了一個(gè)數(shù)據(jù)緩沖區(qū)的概念,說(shuō)這塊屏的顯示程序?qū)?yīng)有三部分,第一部分就是一個(gè) 64 字節(jié)的緩沖區(qū)里面是屏上的每個(gè)點(diǎn)對(duì)應(yīng)的值,第二個(gè)部分是 4 個(gè)變量也就是屏上列分成 8 位一組的點(diǎn)鐘要現(xiàn)實(shí)的容的值。第三個(gè)部分就是掃描輸出程序,這個(gè)程序只需要掃描 64 字節(jié)的緩沖區(qū)其它的不用管,這三部分的工作過(guò)程是, 程序通過(guò) 4 個(gè)變量在字庫(kù)中選擇要顯示的值的編碼送入 64 字節(jié)的顯示緩沖區(qū)中對(duì)應(yīng)的位置,在通過(guò)掃描程序來(lái)把顯示緩沖區(qū)中的容送給顯示屏。這個(gè)過(guò)程也是成為整個(gè)程序的主要框架
33、后面的功能在這些基礎(chǔ)上添加和修改的。程序?qū)懙竭@里出現(xiàn)了單片機(jī)無(wú)法解決的問(wèn)題 RAM 的大小不夠用無(wú)法執(zhí)行程序。這時(shí)就不再使用單片機(jī)來(lái)編寫(xiě)了,我們把程序移植到LPC22C24 上面去,由于 LPC11C24 中引腳的使用不同單片機(jī)引腳使用初始化引腳即 GPIOSETDIRL(x,x,1)第三位為 1 表示引腳的狀態(tài)為輸出,前面兩位分別為第幾個(gè) IO 口的第幾位。而 IO 口的輸出要用 GPIOSETVAIL(x,x,x).第一個(gè) x 表示第幾個(gè) IO 口,第二個(gè) x 表示第幾個(gè) IO 口的第幾位,第三個(gè) x 表示輸出 0 或 1.由于這種輸出方式帶來(lái)的問(wèn)題是只能用 0 和 1 來(lái)輸出,所以只能把
34、原來(lái)程序中的數(shù)據(jù)移位一個(gè)一個(gè)輸出,這是和單片機(jī)的一個(gè)區(qū)別。原來(lái)程序移植到 LPC11C24 中后下載可用位就可改變現(xiàn)實(shí)的容了。原來(lái)只能顯示4 位數(shù)字,現(xiàn)在要把時(shí)間和日期一起顯示了。這樣就要重新規(guī)劃數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)組織和傳入數(shù)據(jù)緩沖區(qū)的算法了,用移位來(lái)把重新規(guī)劃的數(shù)據(jù)緩沖區(qū)填入正確的值,并正確顯示年-月-日-時(shí)-分 14 / 35BufBuf 緩沖區(qū)數(shù)據(jù)組織緩沖區(qū)數(shù)據(jù)組織控制點(diǎn)陣屏顯示時(shí)鐘就要知道點(diǎn)陣屏上每個(gè)點(diǎn)在Buf 緩沖區(qū)中對(duì)應(yīng)的存儲(chǔ)位置,因?yàn)槲覀兯褂玫氖?32*16 的 LED 點(diǎn)陣屏,所以 Buf 緩沖區(qū)就應(yīng)該是一個(gè) 64 字節(jié)的數(shù)據(jù)緩沖區(qū),每一個(gè)字節(jié)表示LED 屏上的 8 個(gè)點(diǎn)如果我
35、們要在某個(gè)位置上顯示某一個(gè)數(shù)字就把Buf 緩沖區(qū)中對(duì)應(yīng)位置的值改成要顯示數(shù)字的編碼。下圖是我們定義時(shí)間的年、月、日、時(shí)、分在點(diǎn)陣屏上的顯示位置和Buf 緩沖區(qū)對(duì)應(yīng)關(guān)系。注:圖中 063 每個(gè)數(shù)字代表一個(gè)字節(jié),數(shù)字表示這個(gè)字節(jié)在 BUF 緩沖區(qū)數(shù)組中的位置。比如說(shuō)圖中51就是從左往右的八個(gè)小方格 ,圖中的6就是從左往右的八個(gè)小方格。5539237點(diǎn)點(diǎn)543851 35 年十位193 顯示5034 位置18年個(gè)位顯示位置22月十位顯示位置59 月個(gè)位43 顯示27 位置1158422663 日十47 顯示31 位置 15 624630日個(gè)位顯示位置261014495357613337411721點(diǎn)
36、 251594852563236401620點(diǎn) 240時(shí)十位顯示位置4時(shí)個(gè)位顯示位置8分十位顯示位置45 分個(gè)位29 顯示1360 位置442812圖 4 LED 點(diǎn)陣屏上的點(diǎn)與 buf 緩沖區(qū)的對(duì)應(yīng)關(guān)系在這里要真正實(shí)現(xiàn)動(dòng)態(tài)掃描則分為兩部分第一部分是buf 數(shù)據(jù)緩存區(qū)的數(shù)據(jù)的動(dòng)態(tài)變化,第二部分是對(duì) LED 屏的行的動(dòng)態(tài)掃描1 1. .B BU UF F 數(shù)數(shù)據(jù)據(jù)緩緩沖沖區(qū)區(qū)的的動(dòng)動(dòng)態(tài)態(tài)變變化化 例如:這是對(duì)顯示的時(shí)鐘分的個(gè)位的數(shù)字在緩沖區(qū)的動(dòng)態(tài)變化的計(jì)算方法 比如要顯示數(shù)字 8buf45=(buf45|0 xf0)&(numcode7*fen1+14)|0 x0f); 15 / 35b
37、uf29=(buf29|0 xf0)&(numcode7*fen14)|0 x0f);buf61=(buf61|0 xf0)&(numcode7* fen1+24)|0 x0f);buf12=(buf12|0 xf0)&(numcode7* fen1+34)|0 x0f);buf28=(buf28|0 xf0)&(numcode7* fen1+44)|0 x0f);buf44=(buf44|0 xf0)&(numcode7* fen1+54)|0 x0f);buf60=(buf60|0 xf0)&(numcode7* fen1+64)|0 x0f
38、);分析:由上圖可得到分的個(gè)位(即 fen1)在點(diǎn)陣屏的位置是 “分個(gè)位顯示位置 ”對(duì)應(yīng)的在數(shù)組中的字節(jié)數(shù)據(jù)是 45,29,13,60,44,28,12.且是這 7 個(gè)字節(jié)的高 4 位。由于要統(tǒng)一操作所以我會(huì)先把數(shù)據(jù)送到每個(gè)字節(jié)的低四位,通過(guò)移位來(lái)對(duì)BUF 中字模數(shù)據(jù)的位置的確定。如第一個(gè) buf45=(buf45|0 xf0)&(numcode7*fen1+14)|0 x0f);buf45|0 xf0 先通過(guò)按位或把要顯示的位置全部置為 1(即不顯示) ,(numcode7*fen1+14) |0 x0f 再在字庫(kù)中找出數(shù)字 8 的位置并把每個(gè)字節(jié)都左移四位之后再和0 x0f 按位與
39、一下消除對(duì)顯示位置之外的影響, (buf45|0 xf0)&(numcode7*fen1+14)|0 x0f)再和原來(lái)置一的數(shù)據(jù)按位與把數(shù)據(jù)放入緩沖區(qū)。這樣就可以把數(shù)據(jù)送入想要的位置了。別的位置也可以用同樣的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳送。2 2. .對(duì)對(duì)數(shù)數(shù)據(jù)據(jù)的的緩緩存存區(qū)區(qū)的的動(dòng)動(dòng)態(tài)態(tài)掃掃描描 通過(guò)上面的要顯示的數(shù)據(jù)的位置與容送入了緩存區(qū),現(xiàn)在要顯示在LED 屏上這個(gè)顯示分為兩步,第一步 74HC595 移位寄存器中數(shù)據(jù)移位,第二步 行數(shù)據(jù)掃描。關(guān)閉 74HC138D 譯碼器和 74HC595 移位寄存器取緩沖區(qū)里的前 16 個(gè)字節(jié)開(kāi)始 16 / 35YN 圖 掃描輸出流程圖(1)列數(shù)據(jù)的
40、移位(74HC595 移位寄存器中數(shù)據(jù)移位 )第一步 移位時(shí)鐘信號(hào)清零第二步 用送過(guò)來(lái)的數(shù)據(jù)來(lái)和 0 x80 按位與取出最高位,再和 0 x80 比是 0 還是 1是 1 就送一個(gè) 1 個(gè) 595 輸入端 R 否則送 0第三步 把送來(lái)的數(shù)據(jù)左移一位第四步 開(kāi)移位時(shí)鐘信號(hào)第五步 繼續(xù)比較,重復(fù) 8 次;關(guān)鍵代碼:v vo oi id ds sh hi if ft tb by yt te e(i in nt t inbyte)16 個(gè)字節(jié)是否掃完閉給 SCLK1 一個(gè)上升沿開(kāi) 74HC595 開(kāi)74HC138 譯碼器數(shù)據(jù)并行輸出返回分別設(shè)置 AB 的值為 00、10、00、11對(duì) 74HC138D
41、 譯碼器進(jìn)行位選 17 / 35i in nt t i;f fo or r(i=0;i8;i+) CLK0;i if f(inbyte&0 x80)=0 x80) RDI1;e el ls se e RDI0;inbyte=inbyte1;CLK1;(2)74HC138譯碼器行選擇第一步,把譯碼器 138 的 OE 的值清零第二步,把移位寄存器 595 并行輸出時(shí)鐘信號(hào)清零第三步,選擇要掃描數(shù)據(jù)這里是 015 共 128 位的數(shù)據(jù)(后面的三段語(yǔ)句分別是1631,3248,4863)第四步,把取緩沖區(qū)總的一個(gè)字節(jié)的數(shù)據(jù)發(fā)送到零時(shí)變量中,并把零時(shí)變量作實(shí)參調(diào)用移位函數(shù)第五步,當(dāng) 128 位
42、數(shù)據(jù)都移位完成時(shí)說(shuō)明列數(shù)據(jù)已經(jīng)有了,這時(shí)設(shè)置A,B 的值并把并行輸出時(shí)鐘置 1 使之產(chǎn)生一個(gè)上升沿,把 595 數(shù)據(jù)輸出到并行輸出口上,開(kāi) 138 使能端 OE 置一第六步,等待一會(huì)兒第七步,修改 A,B 和選擇的數(shù)據(jù)重復(fù)一到六步。當(dāng)然,由于人的視覺(jué)停留, 只要刷屏的速度夠快 所看到的的 LED 顯示屏上顯示的圖像還是全屏穩(wěn)定的圖像。 18 / 35關(guān)鍵代碼:OE0; /OE=0;138譯碼器使能端為低電平SCLK0; /OE=1;138譯碼器使能端為高電平f fo or r(i=0;i16;i+)temp=bufi;shiftbyte(temp);AIN0;/ABIN0;/BSCLK1; /
43、SCLK OE1; /OEdelay(1);這是行掃描的一部分程序,后面的語(yǔ)句和這個(gè)類似,要修改AIN,和 BIN 的值和選擇的在緩沖區(qū)的數(shù)據(jù)的位置的值。3.2.73.2.7 時(shí)鐘顯示秒的控制時(shí)鐘顯示秒的控制在此次的設(shè)計(jì)中本起初是想在點(diǎn)陣 LED屏分成上下兩部分,上面一部分顯示年月日下面一部分顯示時(shí)分秒,但是后來(lái)發(fā)現(xiàn)下面如果要將時(shí)分秒在 LED屏上都顯示出來(lái)的話數(shù)字間就沒(méi)法有足夠的間距來(lái)區(qū)分,所以就采取了另一種方案,在時(shí)和分之間加兩個(gè)點(diǎn)隔一秒閃爍一次,當(dāng)閃過(guò)60次之后分的個(gè)位上就加 1,下面就來(lái)實(shí)現(xiàn)時(shí)和分之間加兩個(gè)點(diǎn)的閃爍。點(diǎn)的閃爍主要就是用的延時(shí),在LPC11C24的開(kāi)發(fā)板中已經(jīng)提供給我們
44、16位定時(shí)器,我們就是利用這個(gè) 16位定時(shí)器timer32把timer32中的終端程序修改加入標(biāo)志位來(lái)實(shí)現(xiàn) 1秒定時(shí)。 19 / 35如下是在16位定時(shí)器中的閃爍計(jì)數(shù)程序:i if f(timer16_0_counter50&timer16_0_counter=100) shanshuo=0;在主函數(shù)中只要控制兩個(gè)點(diǎn)的位置的與和或的值就能使兩個(gè)點(diǎn)閃爍起來(lái)。程序代碼如下:i if f(shanshuo=1)/滅 buf37=buf37|0X01; buf20=buf20|0 x01; buf24=buf24|0 x80; buf41=buf41|0 x80; e el ls se e/亮
45、 buf37=buf37&0Xfe; buf20=buf20&0 xfe; buf24=buf24&0 x7f; buf41=buf41&0 x7f; 3.33.3 GPSGPS 衛(wèi)星數(shù)據(jù)接收模塊衛(wèi)星數(shù)據(jù)接收模塊 GR-87GR-87GR-87 的主要功能是負(fù)責(zé)接受衛(wèi)星數(shù)據(jù)并實(shí)現(xiàn)高精度的時(shí)間信號(hào)輸出。 GR-87 接受 GPS 衛(wèi)星數(shù) 20 / 35據(jù)并且每秒發(fā)出幾種數(shù)據(jù),包括: $GPGGA、$GPRMC、$PGRMV、$PGRMO、$PGRMC 等數(shù)據(jù)格式,因?yàn)槲覀冎皇秋@示它的時(shí)鐘信息所以我們要從中篩選和時(shí)間有關(guān)的數(shù)據(jù)格式&GPRMC。3.3. 3.
46、1GPS3.1GPS 技術(shù)簡(jiǎn)介技術(shù)簡(jiǎn)介GPS 導(dǎo)航系統(tǒng)是以全球 24 顆定位人造衛(wèi)星為基礎(chǔ),向全球各地全天候地提供三維位置、三維速度等信息的一種無(wú)線電導(dǎo)航定位系統(tǒng)。它由三部分構(gòu)成,一是地面控制部分,由主控站、地面天線、監(jiān)測(cè)站與通訊輔助系統(tǒng)組成。二是空間部分,由24 顆衛(wèi)星組成,分布在 6 個(gè)軌道平面。三是用戶裝置部分,由 GPS 接收機(jī)和衛(wèi)星天線組成。民用的定位精度可達(dá) 10 米。在“十二五”期間,衛(wèi)星導(dǎo)航將在眾多領(lǐng)域如航空、海路、鐵路、建筑、電信、電力等方面的應(yīng)用都會(huì)有很大的發(fā)展空間。在未來(lái)的數(shù)年間,隨著定位手機(jī)的高速增長(zhǎng)和移動(dòng)位置服務(wù)業(yè)的展開(kāi),原先以車輛應(yīng)用為主的局面將逐步讓位給衛(wèi)星導(dǎo)航與
47、蜂窩通信融合的定位手機(jī)。在行業(yè)總產(chǎn)值中,運(yùn)營(yíng)服務(wù)的份額也會(huì)逐步加大。圖圖 4 4. .1 1 G GP PS S 系系統(tǒng)統(tǒng)空空間間衛(wèi)衛(wèi)星星星星座座3.3.23.3.2GR-87GR-87此次設(shè)計(jì)的 GPS 模塊系統(tǒng)選擇了采用第三代高效能芯片高靈敏、低耗電量芯片 STAR 的GR-87。建 ARM7TDMI CPU 定位精度小于 10 米,能夠同時(shí)追蹤 20 個(gè)衛(wèi)星信道。芯片建 200,000 個(gè)衛(wèi)星追蹤運(yùn)算器 ,可以保持星歷數(shù)據(jù),快速定位。 其遠(yuǎn)達(dá)能力,滿足汽車導(dǎo)航靈敏度的要求,以與其他基于位置的應(yīng)用程序。因此, holux 的 GR87 引擎是非常適合 AVL 系統(tǒng)集成和基于位置的服務(wù)。3.
48、3.33.3.3 引腳功能引腳功能圖為 GPS 模塊外觀圖,可以看出它有 6 個(gè)引腳,分別為: 21 / 35引腳 1(VCC):主要的直流+3.35.5V 的引擎板供電引腳 2(TXA):主要的傳輸通道,用于導(dǎo)航和輸出為編寫(xiě)的軟件的用戶測(cè)量數(shù)據(jù)。引腳 3(RXA):接受通道,主要接受用戶的命令引腳 4(RXB):輔助接受通道,用于輸入差分引腳 5(GND):接地端引腳 6(RESET):復(fù)位端 圖 3.1 GR-87 外觀圖GR-87GR-87 指標(biāo)指標(biāo)最多可同時(shí)接收 20 個(gè)衛(wèi)星 時(shí)間標(biāo)示: 1 脈波/秒, GPS 時(shí)間 +/-0.1 秒誤差 晶片建 200,000 個(gè)衛(wèi)星追蹤運(yùn)算器 運(yùn)算
49、程序:ARM7/TDMI處理速度:50 MHZ更新速率: 1HZ串口輸出精度可達(dá)微秒級(jí)時(shí)間標(biāo)示: 1 脈波/秒, GPS 時(shí)間 /-0.1 秒誤差尋星時(shí)間小于 10 秒定位時(shí)間(平均值) 22 / 35重新抓?。?.1 秒熱開(kāi)機(jī): 1 秒暖開(kāi)機(jī): 38 秒冷開(kāi)機(jī): 42 秒3.3.43.3.4 硬件接口硬件接口UARTUARTUART 傳輸結(jié)構(gòu) UART:Universal Asynchronous Receiver/Transmitter,通用異步接收 /發(fā)送裝置,UART 是一個(gè)并行輸入成為串行輸出的芯片,通常集成在主板上,多數(shù)是16550AFN 芯片。它是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。
50、有一點(diǎn)要注意的是,它提供了RS-232C 數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它使用 RS-232C 接口的串行設(shè)備通信了。作為接口的一部分,UART 還提供以下功能:將由計(jì)算機(jī)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)部并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(hào)(鍵盤和鼠標(biāo)也是串行設(shè)備) ??梢蕴幚碛?jì)算機(jī)與外部串行設(shè)備的同步管理問(wèn)題。有一些比較高檔的UART 還提供輸入輸出數(shù)據(jù)的緩沖區(qū),現(xiàn)在比較新
51、的 UART 是 16550,它可以在計(jì)算機(jī)需要處理數(shù)據(jù)前在其緩沖區(qū)存儲(chǔ)16 字節(jié)數(shù)據(jù),而通常的UART 是 8250。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計(jì)中, UART 用來(lái)主機(jī)與輔助設(shè)備通信,如汽車音響與外接 AP 之間的通信,與 PC 機(jī)通信包括與監(jiān)控調(diào)試器和其它器件,如EEPROM 通信。通信 UART 首先將接收到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來(lái)傳輸。 微控制器中的 UART 傳送數(shù)據(jù)的速度圍為每秒幾百位到 1.5Mb。例如,嵌入在 ElanSC520 微控制器中的高速 UART 通信的速度可以高達(dá) 1.152Mbps。UART 波特率還受發(fā)送和接收線對(duì)距離 (線長(zhǎng)度)的
52、影響。3.3.53.3.5 通信協(xié)議通信協(xié)議 NMEANMEA 23 / 35NMEA協(xié)議是為了在不同的 GPS(全球定位系統(tǒng))導(dǎo)航設(shè)備中建立統(tǒng)一的 BTCM(海事無(wú)線電技術(shù)委員會(huì))標(biāo)準(zhǔn),由美國(guó)國(guó)家海洋電子協(xié)會(huì)( NMEA-The National Marine Electronics Association)制定的一套通訊協(xié)議。 GPS接收機(jī)根據(jù)NMEA-0183協(xié)議的標(biāo)準(zhǔn)規(guī),將位置、速度等信息通過(guò)串口傳送到 PC機(jī)、PDA等設(shè)備。NMEA-0183協(xié)議是GPS接收機(jī)應(yīng)當(dāng)遵守的標(biāo)準(zhǔn)協(xié)議,也是目前 GPS接收機(jī)上使用最廣泛的協(xié)議,大多數(shù)常見(jiàn)的GPS接收機(jī)、GPS數(shù)據(jù)處理軟件、導(dǎo)航軟件都遵守或者
53、至少兼容這個(gè)協(xié)議。NMEA協(xié)議常用的輸出類型有很多種,但是我們需要的只是下面的這種:GPRMC(建議使用最小GPS數(shù)據(jù)格式)&GPRMC, 標(biāo)準(zhǔn)定位時(shí)間( UTC time)格式:時(shí)時(shí)分分秒秒 .秒秒秒(hhmmss.sss)。 定位狀態(tài),A=數(shù)據(jù)可用,V=數(shù)據(jù)不能用。 緯度,格式:度度分分.分分分分(ddmm.mmmm) 。 緯度區(qū)分,北半球(N)或南半球(S) 。 經(jīng)度,格式:度度分分.分分分分。 精度區(qū)分,東(E)半球或西(W)半球。 相對(duì)位移速度,0.0 至 1851.8knots 相對(duì)位移方向,000.0 至 359.9 度。實(shí)際值 日期,格式:日日月月年年(ddmmyy)
54、。3.3.53.3.5 主控模塊主控模塊 LPC11C24LPC11C24 與與 GR-87GR-87 的連接的連接注:由于我們只需要從注:由于我們只需要從 GR-87GR-87 中讀數(shù)據(jù)所以我們只用了中讀數(shù)據(jù)所以我們只用了 GR-87GR-87 輸出引腳輸出引腳LPC11C24 引腳GR-87 引腳+5VIN5V 供電電源GNDGNDP1_6TXA因?yàn)榇舜卧O(shè)計(jì)的只需要從 GR-87 中讀數(shù)據(jù)所以我們只用了 GR-87 第二引腳 TXA,TXA 為串行輸 24 / 35出通道,用于輸出模塊接收到的 GPS 數(shù)據(jù),與 LPC11C24 上的 P1_6 引腳相連即 UART 的串行接收端RXD 相
55、連。圖 5.3GR-87 與 LPC11C24 的連接圖3.3.63.3.6 UARTUART 接收接收 GPSGPS 數(shù)據(jù)軟件設(shè)計(jì)數(shù)據(jù)軟件設(shè)計(jì)GPS 先和電腦用串口連接觀察串口調(diào)試助手收到的容,這里的問(wèn)題就是把波特率修改直到收到正確的容,下一步就是開(kāi)啟 LPC11C24 的 UART 異步串行通信,把 UART 接收到的數(shù)據(jù)保存下來(lái)再輸出。這里遇到一系列問(wèn)題比如 FIFO 中的數(shù)據(jù)是如何進(jìn)入 RBR 中的是一個(gè)字符接受還是一段字符保存下來(lái)再中斷的。這個(gè)通過(guò)對(duì)初始化的閱讀來(lái)了解的。 在主函數(shù)中對(duì)緩存區(qū)進(jìn)行處理就可以了,使用臨時(shí)緩沖區(qū)但存有用的數(shù)據(jù)的。 UART 可以使用后接入 GPS 實(shí)現(xiàn)對(duì)時(shí)
56、這時(shí)候加入的 timer32 就不能使用了,而是用 timer16。1 1. .U UA AR RT T數(shù)數(shù)據(jù)據(jù)的的接接收收 UART在初始化的時(shí)候會(huì)設(shè)置控制寄存器 FCR中有個(gè)7:6可以設(shè)置RX觸發(fā)等級(jí),這里設(shè)置 00,即收到一個(gè)字符就會(huì)觸發(fā)中斷這樣就可以收一個(gè)處理一個(gè)了。在 UART中斷中,收到一個(gè)字符就放入緩存區(qū),在主函數(shù)中對(duì)緩存區(qū)進(jìn)行處理就可以了。G R-87TXA引引腳腳 LPC11C24 U A R T 接口R RX XD D引引腳腳第二第二引腳引腳P1_6引腳引腳 25 / 35 圖 UART數(shù)據(jù)的接收流程圖關(guān)鍵代碼:i if f (IIRValue = IIR_RDA)UART
57、BufferUARTCount+ = LPC_UART-RBR;i if f (UARTCount = BUFSIZE) UARTCount = 0;這段程序就是如果收到的數(shù)據(jù)是有效的就會(huì)把 FIFO中的最高位的數(shù)據(jù)給緩存區(qū),知道緩存區(qū) 64開(kāi)始系統(tǒng)初始化UART 是否收到數(shù)據(jù)?篩選并處理數(shù)據(jù)送入臨時(shí)數(shù)組結(jié)束定時(shí)器秒 1+1進(jìn)入時(shí)間控制程序NY 26 / 35字節(jié)全滿。2 2. .U UA AR RT T數(shù)數(shù)據(jù)據(jù)的的處處理理我們要用的數(shù)據(jù)是 GPS中的$GPRSM中的時(shí)間和日期的容。 時(shí)間的格式是:時(shí)時(shí)分分秒秒 日期格式是:日日月月年年 GPS信息的數(shù)據(jù)是以$為開(kāi)始,以*號(hào)結(jié)束 篩選GPS數(shù)據(jù)
58、的方法是:a. 判斷是不是收到了開(kāi)頭 $以與后面的GPRMC是否都滿足b. 把緩存數(shù)組中的第 713,4752的數(shù)據(jù)通過(guò)字符轉(zhuǎn)數(shù)字并賦給對(duì)應(yīng)的變量。當(dāng)然因?yàn)槭窃跂|八區(qū),小時(shí)要+8之后判斷是不是超過(guò)了 24小時(shí)。c. 這樣就把時(shí)間和GPS上的數(shù)據(jù)同步了以下是這段程序代碼:i if f ( UARTCount != 0 ) LPC_UART-IER = IER_THRE | IER_RLS; /關(guān)閉UART接收f(shuō) fo or r(i=0;i24)shi-=24;/過(guò)了24小時(shí)就減去24小時(shí)shi1=shi%10;/分別把對(duì)應(yīng)的在緩存區(qū)的數(shù)據(jù)給對(duì)應(yīng)的變量shi2=shi/10; 28 / 35fen
59、2=cmd9-0 x30;fen1=cmd10-0 x30;miao2=cmd11-0 x30;miao1=cmd12-0 x30;i if f(cishu=0|fChange!=shi2)/由于在調(diào)試時(shí)發(fā)現(xiàn)日期的數(shù)據(jù)有可能丟失就在第一次對(duì)時(shí)改變一下,以后分鐘變化是才讓日期對(duì)一次,這樣可以降低出錯(cuò)率 ri2=cmd47-0 x30; ri1=cmd48-0 x30; yue2=cmd49-0 x30; yue1=cmd50-0 x30; nian2=cmd51-0 x30; nian1=cmd52-0 x30; cishu=1; fChange=shi2; choice();f=0;/對(duì)時(shí)時(shí)步
60、用定時(shí)器計(jì)時(shí) fCmd=0; pHead=0; UARTCount = 0;/對(duì)時(shí)結(jié)束清空計(jì)數(shù)位 29 / 35 LPC_UART-IER = IER_THRE | IER_RLS | IER_RBR;/開(kāi)UART接收3.43.4 供電電源的選擇供電電源的選擇采用開(kāi)關(guān)電源作為整個(gè)系統(tǒng)的供電電源,因?yàn)楫?dāng)電壓輸出為 +5V 時(shí)最大的直流電流可以達(dá)到22A,能滿足驅(qū)動(dòng) LED 點(diǎn)陣屏顯示時(shí)所需大電流的要求。第四章系統(tǒng)測(cè)試第四章系統(tǒng)測(cè)試4.14.1 測(cè)試儀器和設(shè)備測(cè)試儀器和設(shè)備1、PC 一臺(tái)2、數(shù)字萬(wàn)用表 1 塊3、數(shù)字示波器 1 臺(tái)4.24.2 測(cè)試方案測(cè)試方案4.2.14.2.1 LEDLED 點(diǎn)陣屏顯示測(cè)試點(diǎn)陣屏顯示測(cè)試將 LED 點(diǎn)陣屏與主控制芯片 NXP LPC11C24 連接,直接給其寫(xiě)入一個(gè)顯示年月日時(shí)分的程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 積極心理學(xué)課程安排計(jì)劃
- 幼兒園探索與發(fā)現(xiàn)計(jì)劃
- 班級(jí)外出學(xué)習(xí)活動(dòng)的組織與安全計(jì)劃
- 班主任工作計(jì)劃打造令人欽佩的班級(jí)
- 生產(chǎn)工作中的溝通協(xié)調(diào)技巧計(jì)劃
- 電子商務(wù)平臺(tái)投資合同三篇
- 班主任培訓(xùn)與支持計(jì)劃
- 二年級(jí)語(yǔ)文下冊(cè)第四單元教案《彩色的夢(mèng)》《楓樹(shù)上的喜鵲》《沙灘上的童話》《我是一只小蟲(chóng)子》
- 律師函合伙協(xié)議書(shū)范文范本
- 大學(xué)生人體器官捐獻(xiàn)協(xié)議書(shū)范文
- 一只窩囊的大老虎說(shuō)課
- 《行政許可法》講義課件
- 綜采工作面及順槽發(fā)生冒頂安全技術(shù)措施
- DB51T3085-2023川產(chǎn)道地藥材生產(chǎn)技術(shù)規(guī)范 麥冬
- 三年級(jí)上冊(cè) 《方向與位置》(說(shuō)課稿)-三年級(jí)上冊(cè)數(shù)學(xué)青島版
- 地理信息安全在線培訓(xùn)考試系統(tǒng)題庫(kù)
- GB/T 42779-2023海洋牧場(chǎng)基本術(shù)語(yǔ)
- 五年級(jí)上冊(cè)英語(yǔ)冀教版課件The Story of Nian
- 大學(xué)生職業(yè)生涯規(guī)劃完整全套教學(xué)課件
- 溝槽支護(hù)專項(xiàng)方案
- 丁香醫(yī)生:2022科學(xué)飲奶趨勢(shì)洞察報(bào)告
評(píng)論
0/150
提交評(píng)論