新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于MSP430F169的多路电阻测量系统设计

基于MSP430F169的多路电阻测量系统设计

作者:时间:2012-03-09来源:网络收藏


4 软件设计
4.1 双机通信的实现
单片机的I2C模块有主发送、主接收、从发送、从接收4种工作模式。双机通信程序设计主要包括初始化程序、主机模式程序、从机模式程序和中断服务程序四部分。
初始化程序包括设置单片机P3.1(SDA)和管脚P3.3(SCL)为为传输端口,端口方向。设置系统时钟,系统时钟由主机产生,选择SMCLK为系统时钟。I2C模块初始化,将控制寄存器U0CTL的控制使能位(I2CEN)置1。U0CTL一个8位的寄存器。通过对该寄存器的设置来确定通信模式、通信协议和校验位的选择。
主机模式程序功能是在主机模式下完成数据的收发。首先要对主机接收、发送初始化,定义主机的地址,对R/W位置位设置接收模式,对中断寄存器I2CIE设置定义中断使能。主机接收、发送初始化程序在每次数据收发时调用。通过对I2CRM,I2CSTP,I2CSTT三个寄存器位设置控制数据发送和接收,主机产生时钟信号、起始和停止信号。
从机模式程序中数据收发初始化部分与主机模式程序相同,值得注意的是,数据的收发过程是由I2C模块自动控制,从机接收数据时随主机产生的时钟信号在总线上接收串行数据,并对接收的数据应答。从机发送数据时,从机接收到主机发送的匹配的设备地址和主机的数据接收请求后,主机产生时钟脉冲,从机向总线发送数据。
中断服务程序的功能是实现主机和从机的数据收发,中I2C模块的是多源中断,8个中断源的中断共用一个中断向量,中断向量寄存器I2CIV的内容决定当前是哪个中断标志引起中断事件。当优先级最高的中断在寄存器I2CIV中产生对应值时,由此判断中断源并进入对应的主机模式程序和从机模式程序中,通过这2个程序中断寄存器I2CIE使能操作,完成对应的中断事件。从而实现主机和从机问数据的收发。
4.2 数据采集与处理
数据采集部分主要是从单片机通过A/D通道采集接入恒流源电路的待测电阻上产生的电压,并进行处理。F169的A/D转换具有单通道单次转换、单通道多次转换、序列通道单次转换、序列通道多次转换模式4种模式。考虑到有8路采集,每个通道每次测量要采集256次数据,因此选用序列通道多次转换模式。A/D转换电路通过模拟通道进行多通道重复转换,使其采集流经待测电阻的电压数据不断自动更新,转换结果顺序的存放在转换存储寄存器中。ADC12MCTLx寄存器的EOS位定义最后一个通道转换完成后表示一次序列通道转换完成,触发信号会触发下次序列通道转换。数据的采样时间间隔由定时器A控制,每次定时器A中断到来时读取A/D采集的数据,在读取前停止A/D转换,读取完毕后重启A/D采集,当数据采集完毕后设置标志位通知其他程序已获得新数据,通过全局变量来实现与其他处理程序数据交互。采样流程图5所示。数据处理方面,为了提高电阻测量的精度,每个测量通道在每次测量时采集256组数据,从机对采集的这256组数据进行算术平均后再通过运算得出每个通道所测量的电阻值。

本文引用地址:http://www.eepw.com.cn/article/194357.htm

e.jpg


4.3 系统软件实现
系统软件采用模块化设计,软件子功能程序分割与硬件模块电路相对应。系统软件包括主程序、双机通信子程序、数据采集子程序、数据处理子程序、串行通信子程序、定时器中断服务子程序、显示子程序、存储及按键控制子程序。限于篇幅只给出主程序流程图,如图6所示。

5 结语
本文多路电阻测量系统利用I2C总线实现了MSP430系列单片机之间的全双工通信,解决了基于双机通信系统的关键技术,双单片机的设计结构灵活紧凑,不但减轻了主处理器的负担,而且提高了测量的精度、可靠性和实时性,同时也是对双处理器系统研究的具体实践。


上一页 1 2 3 4 下一页

关键词: 430F F169 MSP 430

评论


相关推荐

技术专区

关闭