UART在GPS導航系統中的應用
Koninklijke Philips Electronics
本文介紹了如何通過PHilipsg公司UART器件將GPS模組組合到一個車輛導航系統中的應用實例。GPS具有諸如準確度高、全球覆蓋、方便、高品質和低成本等特點。目前已經迅速地從事軍事應用擴展到了民用領域。
GPS具有諸如準確度高、全球覆蓋、使用方便、高質量和低成本等特點,目前已經迅速地從軍事應用擴展到了民用領域。本文介紹了如何通過Philips公司的UART器件將GPS模塊組合到一個車輛導航系統中的應用實例。
第393期 內容
1、介紹
隨著全球定位系統(GPS)技術的迅速發展,GPS開始在很多領域獲得廣泛的應用。GPS具有諸如準確度高、全球覆蓋、方便、高質量和低成本等特點。最近,GPS已經快速地從軍事應用擴展到了民用領域,例如結合了GPS系統、電子地圖、及無線網絡技術的汽車導航系統。目前,GPS正在變得越來越流行,其市場也越來越廣泛。圖1是汽車導航系統的典型方框圖。
圖1. 典型的汽車導航系統
2、GPS
GPS主要包括:天線接口、數字信號處理器、微處理器、存儲器、數據接口和電源接口。圖2是目前正在流行的典型GPS接收器的功能圖。
現在的GPS系統的數據接口一般包括通用异步接收器(UART)、通用串行總線(USB)、或CAN。由于UART的傳輸協議比較簡單,軟件開銷非常少,硬件方案的成本效率非常划算。特別是,當使用高性能UART時,UART的數據吞吐量幾乎可以和USB接口相媲美。
圖2. GPS接收器
3、UART
UART能夠以串行同步方式對接收到的數據進行同步處理,對往來于發射器和接收器之間的數據進行從並行到串行,以及從串行到並行的數據轉變。這些功能對于“將串行數據流轉換為並行數據”來說是必須的,而數字系統一般都要進行這樣的轉換。
對于串行數據流來說,同步就是向被傳輸數據中添加一個開頭位和結尾位,形成一個數據字符。數據的真值通過使齊偶位和數據字符之間相互匹配來保證。接收器負責檢查奇偶位,以防止各種傳輸位錯誤的發生。
對主系統來說,UART表面上相當于一個可以讀入和寫出的8位I/O端口。一旦主系統需要發送數據,就只需將以位格式(數據寬度為8位)將這些數據發送給UART即可;一旦UART接收到了來自另外一個串行設備的數據,就立即將這些數據緩存于FIFO(同樣也是8位寬度)中,然後通過一個內部寄存器,或者通過一個硬件中斷信號,對這些數據進行標識,以指示其是否適合主系統。
除了發射器和接收器外,來自飛利浦半導體公司的UART也擁有其它一些特性,顯著地降低了軟件的開銷,提高了系統的效率。這些特徵包括:
·寬範圍的電源電壓:2.5V,3.3V和5.0V
·硬件和軟件自動流量(autoflow)控制
·較大的FIFOs(高達256位)
·快速的波特率(最大可達5Mbit/s)
·工業級的溫度範圍:-40到+85°C
·較快的總線讀取時間(43ns)
·帶有休眠模態,此時設備的電流消耗減少到大約50μA以下
·器件的引腳之間距離很小(采用的是HVQFN32封裝)
其中,硬件和軟件autoflow控制功能可以自動地防止FIFO溢值情況。如果沒有自動流量控制,在即將塞滿數據的時候,主控軟件必須將接收到的FIFO清空。
大的FIFOs可以減少主處理器對FIFO的服務時間,從而允許處理器留出更多的時間做其他的工作。較快的波特率和較快的總線讀取速度可以提高系統的整體性能,使系統以比較少的時間發送/接收更多的數據。圖3是SC16C2552B UART的內部功能方框圖。
(1)數據總線和控制邏輯模快
通過該模塊,主控制器和UART之間可以相互交換數據。其中,控制邏輯模塊可以產生各種類型的控制信號,供內部互連總線使用。
(2)寄存器選擇邏輯
寄存器選擇邏輯對來自主控系統的地址信息進行解碼,以便確定主系統究竟讀取哪一個UART的內部寄存器。
圖3. SC16C2552B功能模塊圖
(3)內部寄存器
主控制器和UART之間是通過一組寄存器進行通信的。 這些寄存器功能包括:數據保持寄存器(THR/RHR) 、中斷狀態和控制寄存器(IER/ISR)、一個FIFO控制寄存器(FCR)、線狀態和控制寄存器(LCR/LSR)、調制解調器狀態和控制寄存器(MCR/MSR)、可編程數據率(時鐘)控制寄存器(DLL/DLH),以及一個用戶可訪問的臨時數據寄存器(SPR)。
(A)傳輸保持寄存器(RHR)和接收保持寄存器(RHR)
這些寄存器通常用來保存正在傳輸和接收的數據。其中,主控制器將待傳輸數據寫入THR,並從RHR中讀取UART接收到的數據。
(B)中斷啟用寄存器(IER)
中斷啟用寄存器用來啟用/關閉由UART所支持的不同類型的中斷信號。這些中斷信號包括:接收數據就緒、傳輸空載、線路狀態寄存器、調制解調器狀態寄存器等。
(C)FIFO控制寄存器(FCR)
FCR用來啟用FIFOs,清除FIFOs中的數據,以及設定發射器和接收器的觸發電平。
(D)中斷狀態寄存器(ISR)
中斷狀態寄存器(ISR)為用戶提供四個中斷狀態位。
執行ISR上的一個讀周期,將會為用戶提供最高、未定的中斷電平。在該未定的中斷達得到服務之前,不能對其它中斷信號進行承認操作。
(E)線路控制寄存器(LCR)和線路狀態寄存器 (LSR)
LCR用來設定數據通信格式。字長、停止位的數目、齊偶類型等,可以通過向LCR寫入相似的數位進行選擇。線路狀態寄存器(LSR)提供了UART和遠程UART之間的數據傳輸狀態。該寄存器報告校位錯誤、齊偶校驗錯誤、越位錯誤(overrun error)和其他的FIFOs狀態。
(F)DLL和DLH
除數鎖低(Divisor Latch Low,DLL)和除數鎖高(Divisor Latch High,DLH)可以存儲16位除數,供波特率發生器產生波特時鐘。DLH儲存除數的最重要部份,DLL儲存除數的最不重要的部份。
4、UART和GPS之間的接口
本文主要說明如何飛利浦公司的兩通道UART(SC16C2552B),將GPS功能組合到導航系統中。圖4是接口原理框圖,圖5是硬件原理圖。
圖4. GPS導航系統的接口
圖5. 硬件原理圖
5、軟件編碼
Fig 6. 軟件流程圖
軟件流程見圖6。UART的各項初始代碼細節如下:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。