基于A(yíng)Tmega48單片機的串口轉FSK通信模塊設計
AVR單片機串口通信往往采用SPI通信方式,通信模塊串口通信采用UART0控制/狀態(tài)寄存器和數據寄存器實(shí)現。串口通信子程序主要由串口發(fā)送/接收中斷子程序、串口接收命令解析子程序和串口組包發(fā)送子程序3部分組成。其中串口中斷接收程序為:

具體執行串口數據發(fā)送時(shí),需要提供發(fā)送數據長(cháng)度、發(fā)送起始地址、置UCSROB寄存器值(UCSR0B |=0x28)。串口接收命令解析子程序按照對外串口通信協(xié)議解析串口命令,并根據命令描述調用子程序代碼執行相應子功能操作。為了通信容錯處理,通信模塊需對接收串口數據進(jìn)行校驗,如果解析的串口命令格式正確,則向終端發(fā)送肯定應答;否則發(fā)送否定應答,等待終端重傳命令數據。串口組包發(fā)送子程序對接收的FSK數據以及線(xiàn)路狀態(tài)等信息數據,按照串口通信協(xié)議組包發(fā)送給信息終端。
4.4 FSK通信實(shí)現
FSK通信子程序主要由CMX865芯片寄存器操作、FSK收/發(fā)、DTMF收/發(fā)以及線(xiàn)路狀態(tài)檢測等子程序組成。ATmega48芯片采用模擬口線(xiàn)的方式對CMX865寄存器進(jìn)行讀/寫(xiě)操作,其中對CMX865芯片寄存器讀操作程序為:

FSK收/發(fā)、DTMF收/發(fā)子程序均以CMX865寄存器讀/寫(xiě)操作函數為基礎,通過(guò)設置CMX865寄存器的值,確定其工作模式。FSK數據發(fā)送、接收都可以通過(guò)CMX865芯片的IRQ中斷口線(xiàn)引起ATmega48芯片中斷,因此FSK數據收/發(fā)都通過(guò)中斷實(shí)現。芯片程序采用10 ms定時(shí)器循環(huán)檢測線(xiàn)路狀態(tài)。
結語(yǔ)
本文利用ATmega48芯片和CMX865芯片為硬件架構設計了串口轉FSK通信模塊。由于A(yíng)Tmega48芯片與ATmega88芯片除了Flash、EEPROM、SR AM容量差異外,性能完全相同。通信模塊可以不更改硬件電路,僅配置相應AVR芯片,對軟件稍作調整,能夠滿(mǎn)足通信業(yè)務(wù)對通信數據量增加的需求,節約模塊二次開(kāi)發(fā)的成本。目前本通信模塊已在一款新型的電子交易終端上使用,并與中興、精倫等電子交易平臺進(jìn)行信息交互,運行效果良好。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
分頻器相關(guān)文章:分頻器原理
評論