基于双C8051F020微控制器的应用系统
据通信,关键在于如何利用单片机中的状态寄存器中的状态码,通过软件编程来实现对状态码的查询。每一个状态码都对应一个当前的通信状态和将要执行的操作,因此,根据所得到的状态码来确定当前的通信状态,以实现相互间的通信。
在编程时,SMBus通信协议是利用中断查询状态码的方式实现的,为使双方的通信可靠,也规定了软件握手:初始化后,从片等待主片的命令字节33H,从片收到33H后给主片发CCH应答字节,主片收到CCH字节后,根据上位机要求给从片发送相应的命令字节(采样周期,采样时间,采样通道,开关量状态等),然后发送BBH字节个主片,并启动相应AD转换,主片收到BB后才进行AD转换,保证主片与从片对模拟量的同步采样。
4 系统软件设计
考虑到系统灵活性,我们编程使得通道选择、采样时间、采样周期、数字量输入、开关量的控制、PWM波的频率及占空比、从下位机的工作情况等由用户在上位机上指定,然后以命令字传给下位机,具体为:用4个字节分别表示两片MCU的AD通道是否被选中,每个字节位上为1表示该通道被选中,否则不选该通道。用3个字节存放采样周期,其最小单位为10微妙,5个字节存放采样时间,一个字节用于开关量,2个字节用于存放PWM波的频率,2个字节用于存放占空比值,1个字节用于表示数字量输入是否被选中。对于输入的数字量,输入是涡轮流量计来的脉冲,输入脉冲数的确定是采样引脚电平变化的方法来确定的。为保证小流量时的精度,按4秒钟所计脉冲数,通过其转换关系来确定流量。其中引脚电平采样的时间设为100微妙。
为减轻下位机的任务,其采集的原始数据直接送给上位机进行处理,保证下位机有高的采样速率和高的传输速率。图4给出了下位机主片的工作流程图。
5 结束语
我们使用了自身带有AD转换电路及SMBus通信总线接口C8051F020微控制器,实现了两片MCU之间数据的高速可靠的数据通信。而且还使用了USB-UART桥接电路,保证了下位机与上位机有高的数据传输率。并且,在上位机软件设计时考虑到应用系统的通用性,可根据实际需求选用不同的传感器,并在上位机上进行相应的选择,就能得到所需的测量数据及曲线,使得该应用系统有较强的通用性。
参考文献:
[1] 潘琢金,施国君. C8051FXXX高速SOC单片机原理及应用. 北京:北京航空航天大学出版社,2002.
[2] CP2101数据手册. http://www.xhl.com.cn
/xhl/downfile/CP210x.pdf.
[3]谢瑞和.串行技术大全.北京:清华大学出版社,2003.4 .
[4] 陈建平,姚凯学,等. 通用动态测试系统的设计与实现. 贵州大学学报(自然科学版), 2004,
21(1):79-82.
[5] 范逸之 陈立元. Visual Basic 与RS-232串行通信控制[M],北京:中国青年出版社,2002.
[6] 王力,王开和,等. 基于C8051F的SMBus实现多点测温系统. 天津科技大学学报,2004,19(3):
39-41.
应用系统 C8051F020 SMBus 串行通信 USB 相关文章:
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 单片机应用系统的主要干扰形式(12-02)
- 单片机应用系统的抗干扰方法(12-02)
- 单片机应用系统设计步骤(12-02)
- 单片机应用系统硬件电路设计参考(11-28)
- ARM应用系统开发详解:第1章 ARM微处理器概述(11-20)