發布日期:2022-04-18 點擊率:62
0 引 言 1.1 ATmega16與M12模塊的硬件接口 這里采用光電耦合器件TLP521進行5V和3V之間的電平轉換,以增強抗干擾能力。ATmega16的I/O驅動能力較強(最大輸出40mA電流),可以直接驅動TLP521。M12模塊的I/O驅動能力較弱,需加一級驅動緩沖器才能驅動TLP521,這里使用7406反相驅動緩沖器。 HD44780的數據總線DB7~DB0與ATmega16的PA7~PA0相接,RS、R/W和EN分別與單片機的PD3、PD4和PD5相連。利用ATmega16的I/O口控制LCD進行指令和數據輸入,正確地顯示出經緯度數據。 2 ATmega16與M12模塊的接口程序設計
GPS(全球定位系統)是為海上、陸地和空中各種運輸工具和移動設備的導航和定位而開發的,具有高精度、全天候、全球性和點間無需通視等優點,使測量技術發生了質的飛躍。GPS技術引入我國后,特別是美國取消SA政策后的這幾年發展十分迅速。目前,GPS已被廣泛應用在工程測量、地理測繪、交通運輸和軍事等諸多領域,取得了明顯的社會和經濟效益,發展前景十分廣闊。在GPS的行業應用中,數據接收系統是最基本的設備。目前的數據接收系統具有智能化和可擴展性不斷增強的發展趨勢,表現為內嵌的MCU性能越來越強大,外圍接口越來越豐富,但軟硬件成本不斷上升,減緩了GPS接收系統平民化的趨勢。本文介紹一種基于AVR單片機ATmega16和Motorola M12 Oncore模塊的GPS數據接收系統。
1 系統的硬件設計
系統由ATmega16、M12模塊、LCD顯示器和一些外圍電路組成,系統的硬件結構如圖1所示。ATmega16具有1個功能完整的異步串行通信接口(UART),在直流5V供電時,其I/O操作電壓范圍約為0~5V;M12模塊提供一個用于輸入控制信息和輸出定位與狀態信息串行通信接口,在直流3V供電時,其I/O電平符合TTL電平范圍,為0~3V。因此,可以將ATmega16串行接口經電平轉換電路轉接后與M12模塊的串行口相連,進行異步串行數據交換。系統采用一塊16×2字符型LCD顯示經緯度信息。系統中的ATmega16和LCD采用直流5V供電,5V電源經過由三端穩壓芯片LM317組成的穩壓電路將電壓轉換成3V后給M12模塊供電。
由于ATmega16和M12模塊的I/O操作電壓范圍不相同,所以兩者的串行口之間需經過電平轉換才能確保穩定通信,其電平轉換電路如圖2所示。
1.2 ATmega16與LCD的硬件接口
系統中采用基于HD44780液晶控制芯片的16×2字符型LCD,該器件內置了字符產生器,能顯示192個常用字符(包括阿拉伯數字和大小寫英文字母)和16個用戶自定義字符,它與ATmega16的接口如圖3所示。
系統使用ATmega16的串行口向M12模塊發出控制指令和接收定位信息。M12模塊支持。Motorola二進制格式和NMEA0183格式兩種數據輸出模式。在Motorola二進制模式下,M12以9600bps的速率輸出數據和接收指令;在NMEA0183,M12以4800bps的速率輸出數據和接收指令。默認狀態下,M12模塊工作在Motorola二進制模式下。為了獲取更高的數據傳輸速度,這里使用M12模塊默認的工作模式,即Motorola二進制模式。在該模式下,串行數據傳輸格式為:8位數據位,1位停止位,無奇偶校驗和硬件流控制。
ATmega16以通過向M12發送AT指令的方式對其進行控制。Motorola的AT I/O指令一共有69條,其中M12模塊所支持的指令有51條。利用這些指令可以很方便的對M12模塊進行日期時間設定、自定義坐標設定和定位信息讀取等操作。在本系統中,只需要讀取M12模塊的定位信息,因此程序中只用到51條指令中的1條指令:
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV