1.4硬件设计中遇到的问题
在混合电压系统中,不同电源电压的逻辑器件相互接口时会存在以下3个主要问题:一是加到输入和输出引脚上允许的最大电压限制问题;二是两个电源间电流的互串问题;三是必须满足的输入转换门限电平问题。
器件对加到输入和输出脚的电压通常是有限制的。这些引脚有二极管或分离元件流向电源。例如3V器件的输入端接上5V信号,则5V电源将会向3V电源充电,持续的电流会损坏二极管和电路元件。
在等待或掉电方式时,3V电源降落到0V,大电流将流通到地,这使总线上的高电压被下拉到地,这些情况将引起数据丢失和元件损坏。必须注意的是:不管是在3V工作状态或是0V的等待状态都不允许电流流向Vcc。
所谓输入转换门限电平问题,即噪声容限问题。连接在一起的两个逻辑器件要想正常工作,必须满足高、低噪声容限都为正值。本文中CH375采用5V电源供电,MSP430F149采用3.3V供电。
CH375和MSP430F149的噪声容限值见表1。
MSP430F149驱动CH375时,高噪声容限=2.75V-2V=0.75V;低噪声容限=0.7V-0.25V=0.45V。
CH375驱动MSP430F149时,高噪声容限=4.5V-1.9V=2.7V;低噪声容限=0.9V-0.5V=0.4V。
由于噪声容限都为正值,所以MSP430F149和CH375可以直接相连正常工作。
2 软件设计
2.1串行数据格式问题
由于采用串行接口,串行数据格式必须一致。CH375的串行数据格式为:1个起始位、9个数据位、1个停止位,其中前8个数据位是一个字节数据,最后1个数据位是命令标志位。第9位为0时,前8位的数据被写入CH375芯片中,第9位为1时,前8位被作为命令码写入CH375芯片中。CH375的串行通讯波特率默认是9600b/s,单片机可以随时通过SET_BAUDRATE命令选择合适的通讯波特率。MSP430的通用串行通信模块分异步模式和同步模式。
异步通信的帧格式:1位起始位、7位或8位数据位、校验位(可奇/可偶/可无)、1位地址位(地址模式时)和1位或2位停止位。异步模式又分空闲多机模式和地址位多机模式。同步模式下,允许7位或8位数据流移入或移出MSP430单片机。
对照375的串行数据格式,笔者选用异步模式中的地址位多机模式。这种模式下,字符包含一个附加的位作为地址标志。数据块的第一个字符带有一个置位的地址位,表明该字符是一个地址。结合375的串行数据格式,把430的地址位看作第9位,可以模拟375的串行数据格式。
如果选用没有串行通信模块的430单片机,也可以选用串行方式,解决方法是用普通的IO口模拟串行通信的时序,当然要用到定时器Timer。可以用两个函数实现写命令和写数据的功能,程序中要用到位处理指令&,<<,>>等。现给出部分代码程序: