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