×
单片机 > 单片机程序设计 > 详情

基于单片机的通用测试仪的设计与实现

发布时间:2020-08-21 发布时间:
|
1 引言

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

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

2 系统的硬件构成

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


2.1 C8051F020微控制器

我们选择美国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个中断源。  

2.2 USB100

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

表1 USB管脚功能和定义


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


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


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

3 系统通信的设计

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

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

表2 协议帧格式


1)成帧方式

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

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

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析