来源:中国一卡通网 作者:中国一卡通收录 发布时间:2012-03-05 10:27:51 字体:[大 中 小]
摘 要:以AVR单片机ATmega48芯片及CMX865调制/解调芯片为硬件架构规范了对外串口通信协议,采用模拟口线的方式对CMX865寄存器进行操作,设计了一种串口转FSK的通信模块,实现数据传输方式的转换。硬件电路以ATmega48微处理器为核心,并利用C/BUS总线控制CMX865芯片,实现FSK/DTMF收、发功能;外围电路由振铃检测、FSK数据收发接口电路组成。模块软件设计主要包括串口通信和FSK通信两部分程序,串口通信程序实现串口通信命令的组包发送、收包解析/处理功能;FSK通信程序实现利用中断方式发送、接收FSK数据功能。
具体执行串口数据发送时,需要提供发送数据长度、发送起始地址、置UCSROB寄存器值(UCSR0B |=0x28)。串口接收命令解析子程序按照对外串口通信协议解析串口命令,并根据命令描述调用子程序代码执行相应子功能操作。为了通信容错处理,通信模块需对接收串口数据进行校验,如果解析的串口命令格式正确,则向终端发送肯定应答;否则发送否定应答,等待终端重传命令数据。串口组包发送子程序对接收的FSK数据以及线路状态等信息数据,按照串口通信协议组包发送给信息终端。
4.4 FSK通信实现
FSK通信子程序主要由CMX865芯片寄存器操作、FSK收/发、DTMF收/发以及线路状态检测等子程序组成。ATmega48芯片采用模拟口线的方式对CMX865寄存器进行读/写操作,其中对CMX865芯片寄存器读操作程序为:
FSK收/发、DTMF收/发子程序均以CMX865寄存器读/写操作函数为基础,通过设置CMX865寄存器的值,确定其工作模式。FSK数据发送、接收都可以通过CMX865芯片的IRQ中断口线引起ATmega48芯片中断,因此FSK数据收/发都通过中断实现。芯片程序采用10 ms定时器循环检测线路状态。
结语
本文利用ATmega48芯片和CMX865芯片为硬件架构设计了串口转FSK通信模块。由于ATmega48芯片与ATmega88芯片除了Flash、EEPROM、SR AM容量差异外,性能完全相同。通信模块可以不更改硬件电路,仅配置相应AVR芯片,对软件稍作调整,能够满足通信业务对通信数据量增加的需求,节约模块二次开发的成本。目前本通信模块已在一款新型的电子交易终端上使用,并与中兴、精伦等电子交易平台进行信息交互,运行效果良好。
推荐文章
论坛热帖