多串口船舶導航數(shù)據(jù)轉(zhuǎn)換器的低成本實現(xiàn)
單片機P89C669與AT89C2051之間的數(shù)據(jù)通信流程圖如圖3所示,具體實現(xiàn)如下。
(1)P89C669方面
①P89C669發(fā)送數(shù)據(jù)。首先,程序初始化后P89C669將AT89C2051有關(guān)的晶振信息、波特率等參數(shù)以命令字形式傳送給AT89C2051,AT89C2051接收后查表求解進行串口波特率設置。然后P89C669將接收完畢的數(shù)據(jù)存入緩沖區(qū),并檢測 引腳,若為高電平則等待,直到變?yōu)榈碗娖綍r通過并口將數(shù)據(jù)傳給AT89C2051。在AT89C2051將接收緩沖區(qū)數(shù)據(jù)發(fā)送出去的同時檢測緩沖區(qū),如果緩沖區(qū)不滿則將 引腳置低,反之則高。
②P89C669接收數(shù)據(jù)。AT89C2051接收到數(shù)據(jù)后用 引腳產(chǎn)生邊沿信號向P89C669發(fā)出請求,P89C669收到請求信號后執(zhí)行讀取數(shù)據(jù)程序。
本文引用地址:http://www.ex-cimer.com/article/173579.htm
圖3 P89C669方面的程序流程圖
(2)AT89C2051方面
AT89C2051是作為IC芯片用來進行串口擴展的,在初始化階段接收上位機傳來的數(shù)據(jù)進行初始化設置,然后循環(huán)等待接收上位機發(fā)送的數(shù)據(jù)[6]。AT89C2051將并口傳來的數(shù)據(jù)存在并口接收緩沖區(qū),并復制到串口發(fā)送緩沖區(qū),激活串口使用中斷方式發(fā)送;將串口傳來的數(shù)據(jù)存在串口接收緩沖區(qū),并復制到并口發(fā)送緩沖區(qū),同時改變 的電位,向上位機發(fā)出請求。在船舶導航數(shù)據(jù)轉(zhuǎn)換器中,AT89C2051主要是用來串口發(fā)送電羅經(jīng)信號,它與P89C669的通信流程圖如圖4所示。
4結(jié)束語
文中應用AT89C2051擴展串口后,系統(tǒng)共有三個串行口。其中,一個串口用來選擇接收電羅經(jīng)或者GPS信號用以數(shù)據(jù)轉(zhuǎn)換;一個串口經(jīng)過MAX3232實現(xiàn)TTL電平與RS-232電平轉(zhuǎn)換后可連接微機的串行口,從而簡單方便地實現(xiàn)單片機P89C669的在線編程,它同時也作為GPS信號的輸出接口;另一個串口主要用來輸出電羅經(jīng)信號。
該電路與采用專用芯片的電路相比,并不復雜,而且編程設計較簡單,綜合考慮是一種比較經(jīng)濟實用的低成本設計方法。
創(chuàng)新點:
文章本著低成本的指導思想進行設計。首先,選用可在線編程的P89C669單片機為主處理器,省去編程器,降低了成本;其次,采用價格便宜的AT89C2051單片機與充分利用P89C669單片機豐富的IO口進行串口擴展。最終,實現(xiàn)了多串口船舶導航數(shù)據(jù)轉(zhuǎn)換器的低成本實現(xiàn)。
評論