当前位置:首页 > 嵌入式 > 嵌入式硬件

引言

在许多工业控制和数据采集系统中,为了实现系统的小型化和便携化,通常采用上下位机形式的主从式结构。

由于MCU(微控制器)成本低,编程灵活、方便,实时性强,且具有一定的智能,因而通常使用它作为下位机的主控芯片,负责对现场数据的采集与传输,并控制相应的执行机构。上位机一般使用普通的PC机、笔记本电脑或工控机,负责对下位机传来的数据进行分析处理, 并根据处理结果控制下位机的操作。上下位机之间的数据通信接口目前一般使用RS-232和USB总线接口标准,相对于RS-232,USB 具有高速传输、热插拔、即插即用等优点。在本系统中,为了保证下位机高速采样数据能及时传送给上位机进行分析处理,我们采用USB总线来实现上下位机的数据传输。

1 系统的硬件构成

系统主要由PC机,高性能C8051F020微控制器(MCU),USB接口插头,USB100模块。图1是其系统构成框图。

1.1 C8051F020微控制器[1]

我们选择美国Silicon公司的微控制器(MCU)C8051F020(简称F020)作为数据采集系统的CPU。F020是一种混合信号SOC型8位单片机,它有一个8通道的、转换速率为100Kbps的12位ADC,以及一个8通道的、转换速率为500Kbps的8位ADC;2个12位DAC;64KB FlashRom,4KBRAM;有22个中断源和5个定时器/计数器。该MCU属于C8051FXXX系列中的F02x子系列,其性能价格比在目前应用领域极具竞争力,它具有以下主要特点:1)芯片采用高速流水线结构;2)先进的JTAG调试接口;3)可靠的安全机制可利用JTAG编程加密芯片;4)强大的控制功能。有多达64个I/O线,有独特数字交叉开关(digital crossbar),允许将内部数字系统资源映射到P0、P1、P2和P3的端口I/O引脚;5)有多达22个中断源。

1.2 USB100[2-3]

USB100内部封装了USB1.1的全部协议,并带有384字节的发送缓冲区和128字节的接收缓冲区,8位并行数据接口。对USB的操作编程类似对外部存储器的操作,由于该模块完成了全部USB协议的转换和封装,使得对USB的开发和应用过程变得非常简单,用户只要在PC机上安装USB100模块驱动程序以后,对其编程可以按照与串口完全一样的方法来完成。USB100主要的管脚及功能如表1 所示(未列出的管脚为空脚)。

表1 USB管脚功能和定义

如图2所示,当检测到USB100模块TXE为低时,表示内部发送缓冲区允许发送数据,可以将数据通过8位数据总线D0~D7发送给USB100模块,发送数据锁存由WR控制(边沿触发);当TXE为高时,禁止发送数据。

如图3所示,当检测到USB100模块RXF为低时,表示内部接收缓冲区有来自USB端口的数据可通过8位数据线将数据读入,接收数据锁存器由RD控制(边沿触发)。

USB100模块的数据线D0~D7与F020的P4端口相连,P2.4~P2.7分别与USB100模块的TXE、RXF、WR、RD相连。

2 系统通信的设计[4-6]

动态测试仪的任务主要是进行数据采集和定时/计数,并将这些数据传给上位机进行数据处理,这就要求上下位机之间的通信有清晰、准确的通信协议,来保证数据通信能够有条不紊地进行。

为了满足上、下位机软件的可扩展性和通用性,通信协议采用数据帧的形式传输信息。协议帧格式见表2,它由起始符、长度码、帧信息、帧校验和终止符组成,成帧过程中采用了字符插入法和HEX校验。

表2 协议帧格式

1)成帧方式

协议帧使用“DLE STX”作为起始符,使用“DLE ETX”作为终止符,并采用字符插入法保证通信信息的正确。字符插入法的实现方法为:发送方搜索起始符和终止符间每个字节信息,若为“DLE”,即在该字节信息后插入一个“DLE”。接收方接收信息后也要搜索整个帧,若查找到连续两个“DLE”,即将后一个 “DLE”删除,还原成原信息内容。

2)帧校验算法

协议帧采用HEX校验保证通信信息的正确。HEX校验的填充在字符插入之前实现,HEX校验的验证在插入字符删除之后实现。实现方法为:发送方计算起始符和终止符间待发送数据的校验和,然后将256与该校验和的差填充于“HEX校验”字节处。接收方计算起始符和终止符间包括HEX字节在内的接收数据校验和,若为0,则校验通过。

3 系统软件设计[5-7]

F020有8通道100Kbps、12位精度的ADC0以及8通道500Kbps、8位精度的ADC1。考虑到系统灵活性,我们编程使得通道选择,采样时间,采样周期,开关量的状态由用户在上位机上指定,然后以命令字传给下位机,具体为:用两个字节分别表示该通道是否被选中,每个字节位上为1表示该通道被选中,否则不被选中。用3个字节存放采样周期,其最小单位为50微妙(即最大采样速率为20K bps),5个字节存放采样时间,一个字节用于开关量的通断状态,为1则接通,反之为切断。

3.1 下位机软件

为减轻下位机的任务,其采集的原始数据直接送给上位机进行处理,下位机的任务就是进行数据采集,并把所采集的数据通过USB100传给上位机,以保证下位机有高的采样速率。下位机的工作流程见图4。

3.1.1 下位机发送数据子程序

函数: Send_AD_Result();

参数: 无

功能: 将AD转换结果组成帧后,以帧格式发送给上位机

void Send_AD_Result (void){

if(txe==0){

wr=0;

for(i=0;i

wr=1;

PORT4=MyData[i];/*数据顺序存放在内存MyData中*/

wr=0;

}

}

}

3.1.2 下位机接收数据子程序

同理,当MCU检测到USB100 模块RXF 为低时,表示内部接收缓冲区有来自USB100端口的数据,可以通过八位数据总线D0~D7 将数据读出。

函数: ReceiveData()

参数: 无

功能: 查看PC端是否有数据送来,如有,则置收到数据标志

void ReceiveData (void){

rd=1;

if(rxf==0){/*数据缓冲区有数据*/

DataNumber+=0x01;//接收数据长度加1

rd=0; //读操作,低电平有效

Receive_Data=PINB;//接收数据

rd=1;

}

3.2 上位机软件

用户在PC机上安装USB100模块驱动程序之后,该USB100默认成该PC的一个虚拟串口,因此在上位机可以将它当作一个串口进行处理。上位机软件开发是用VB完成的,与下位机的通信使用串口控件MSComm。上位机的主要功能有:

1) 采样通道以及开关量的设置,输入模拟量的选择(电压、电流,电阻),变换器输出的单位选择。

2) 对下位机传来的原始数据进行处理,并根据传感器参数转换为对应的实际测量值。

3) 实时在计算机屏幕上显示采样曲线,并把所采集的数据存入数据库,以便能够随时查阅。

4) 对采集的数据进行频谱分析,并将分析结果以曲线形式显示在屏幕上。

4 结束语

我们采用USB100 专用模块和C8051F020高速嵌入式MCU设计的测试仪,不仅满足现场数据采集以及相应的控制,而且方便与笔记本电脑或台式机构建虚拟仪器系统。我们在上位机软件设计时考虑到其通用性,根据实际需求选用不同的传感器,在上位机上进行相应的选择,就能得到所需的测量数据及曲线,因而该测试仪有较强的通用性。本测试仪经过两年多来的实际运行,系统运行稳定可靠,满足用户需求。

参考文献:

[1] 潘琢金,施国君. C8051FXXX高速SOC单片机原理及应用. 北京:北京航空航天大学出版社,2002.

[2] 迅通科技. USB100数据手册[M]. 哈尔滨:迅通科技有限公,2002.

[3] 冯国飞,宋蕴兴. 基于USB数据采集卡的设计与实现[J]. 微计算机信息,2005.11:75-76

[4] 张厚武,姚凯学. 基于C8051F020微控制器的动态测试仪的设计[J]. 机械与电子,2006(8):12-14.

[5] 陈建平,姚凯学,等. 通用动态测试系统的设计与实现. 贵州大学学报(自然科学版), 2004,21(1):79-82.

[6] 谢瑞和.串行技术大全.北京:清华大学出版社,2003.4

[7] 郑阿奇,曹戈.Visual Basic实用教程 北京:电子工业出版社,2003.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭