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