多串口船舶導航數據轉換器的低成本實(shí)現
由于接收信號強弱差別、設備使用狀況差異等因素,船舶導航過(guò)程中會(huì )出現信號不穩、輸出中斷等問(wèn)題,給船舶導航帶來(lái)極大不便。而電羅經(jīng)和GPS是遠洋船舶上常用的導航設備,合理地配合使用這兩種設備可以有效地增加導航的可靠性。
為實(shí)現電羅經(jīng)和GPS的配合使用,使用單片機設計了一種新型的船舶導航數據轉換器[1]。在只有一種可靠導航數據的情況下,轉換器可以實(shí)時(shí)地進(jìn)行兩種數據格式的轉換,保證電羅經(jīng)和GPS設備的正常工作,為船舶航行提供可靠導航。
2串口擴展方案比較分析
數據轉換器有兩個(gè)輸入端,分別與電羅經(jīng)和GPS設備連接,且均為RS422接口[2]。GPS信號是標準NMEA-0183格式,并包括兩種語(yǔ)句,其中HDT語(yǔ)句輸出航向信號,ROT語(yǔ)句輸出航向變化率信號。而電羅經(jīng)信號只有一種格式,它包括了航向數據信號和航向變化率信號。
數據轉換器對輸入信號進(jìn)行選擇,當輸入信號為電羅經(jīng)時(shí),轉換器將電羅經(jīng)的航向語(yǔ)句直接輸出到接口為RS422的電羅經(jīng)導航設備終端,同時(shí)將輸入的數據轉換為標準NMEA-0183格式的HDT與ROT語(yǔ)句數據輸出到接口為RS232的GPS導航設備終端。而輸入信號為GPS時(shí),轉換器將GPS的航向語(yǔ)句直接輸出到接口為RS232的GPS導航設備終端,同時(shí)將輸入的HDT與ROT數據轉換為電羅經(jīng)數據格式輸出到接口為RS422的電羅經(jīng)導航設備終端。數據轉換器的功能框圖如圖1所示。
圖1 數據轉換器的功能框圖
為實(shí)現數據的轉換,就需要數據轉換器至少具備三個(gè)標準的UART串口。有多種設計方案都能滿(mǎn)足這一要求且不盡相同,成本、指標、可靠性等都存在差異。根據目前的串口器件設計,歸納起來(lái)主要有以下幾種比較常用的多串口設計方案[3]。
(1)多串口單片機。其中雙串口的單片機的價(jià)格在30~70元左右,三串口的單片機價(jià)格更加昂貴,直接增加了系統設計的成本。同時(shí),由于各單片機的指令不同,以及由于串口功能的擴展帶來(lái)的陌生寄存器的使用都增加了設計人員的工作量和難度。
(2)軟件模擬串口。其主要優(yōu)點(diǎn)是成本低,但是可靠性和串口指標都無(wú)法控制,存在缺點(diǎn):一是采樣次數低,一般只能做到2次/BIT,這樣數據的正確性就難以保證;二是不能實(shí)現高波特率通訊,軟件模擬串口一般不能實(shí)現高于4800 bps的波特率。
(3)專(zhuān)用IC器件。使用專(zhuān)用串口擴展芯片,例如TI等公司開(kāi)發(fā)的16C554系列串口擴展芯片,通過(guò)并行口擴展串行口,功能比較強大、通訊速度高;成都國騰微電子有限公司推出的GM8123/25系列串口擴展芯片,通過(guò)串行口擴展串行口,可簡(jiǎn)單方便地實(shí)現全硬件擴展。但總而言之,串口擴展芯片價(jià)格普遍較高。
根據數據轉換器的設計要求,考慮降低成本,最后選取可通過(guò)RS232接口在線(xiàn)編程的飛利浦單片機P89C669作為數據轉換的主處理器。并充分利用P89C669豐富的IO口,通過(guò)AT89C2051來(lái)擴展數據轉換器所需要的第三個(gè)串口,以低成本實(shí)現了串口擴展[4]。
3UART的低成本實(shí)現方案
3.1單片機IO口的分配、連線(xiàn)
P89C669[5]是基于Philips半導體新51MX(存儲器擴展)內核的Flash微控制器代表。它包含96k字節的Flash程序存儲器、2k字節的片內數據RAM、1個(gè)可編程計數器陣列(PCA)、可配置成不同時(shí)間范圍的看門(mén)狗定時(shí)器(通過(guò)SFR的位設置)、2個(gè)增強型UART以及字節型I2C總線(xiàn)串行接口等。
P89C669主要實(shí)現電羅經(jīng)和GPS信號數據的接收、轉換和發(fā)送,AT89C2051主要用來(lái)擴展串口[5],具體的IO分配如下。AT89C2051的P1口與P89C669的P0口相連,作為數據通信總線(xiàn);單片機AT89C2051的P3.3引腳接P89C669的P3.2引腳,作為AT89C2051向P89C669的發(fā)送請求信號( );AT89C2051的P3.2引腳接P89C669的P2.7引腳,作為P89C669向AT89C2051請求中斷的控制信號;AT89C2051的P3.4引腳接P89C669的P2.6引腳,作為P89C669對AT89C2051讀寫(xiě)操作的控制信號( );AT89C2051的P3.5引腳接P89C669的P2.5引腳,作為P89C669向AT89C2051寫(xiě)入指令或數據的控制信號( )。AT89C2051與P89C669之間的連接圖如圖2所示。
圖2 P89C669與AT89C2051的硬件連接圖
評論