一种多处理器数据采集系统方案

本文采用usb总线接口芯片ch375设计了具有主/从双模式的多单片机数据采集系统,既能完成与上位机的实时通讯,也可在环境条件恶劣时作为便携式系统完成采集数据在usb移动存储设备上的转存。
1 双模式usb接口芯片ch375简介
ch375是南京沁恒有限公司生产的usb总线通用接口芯片,支持usb-host主机方式与usb-device/slave设备方式,并可动态切换。ch375具有8 bit数据总线,读、写、片选控制以及中断输出,可以方便地挂接到单片机等控制器的系统总线上。主机模式下,芯片还提供了串行通讯方式,控制器可以通过串口操作usb移动存储设备。此外,ch375内置了处理mass-storange海量存储设备的专用通讯协议固件,支持常用的usb全速设备,兼容usb2.0设备(u盘、闪盘以及usb移动硬盘)。外部控制器可以通过该芯片直接以扇区为单位进行读写操作控制。如果需要处理与pc机兼容的文件系统,可以利用厂家提供的c语言子程序库实现usb存储设备的文件级接口,从而降低开发难度、节约成本。
2 硬件系统设计
本文介绍的数据采集系统用于某型数字式随动系统的性能测试,其硬件框图如图1所示。
系统硬件主要由主控单片机、信号调理模块、usb通讯模块、从控单片机组以及键盘显示模块五部分构成。工作时,先由主控单片机向从控单片机组发出测试开始指令,从控单片机组完成与被测随动系统数控电路的通讯,一方面测试通讯情况是否正常,另一方面维持随动系统正常工作。通讯测试结果经串行口由从控机组送回主控机,作为性能测试的部分结果数据。随动系统正常运行后,信号调理模块将被测信号滤波整理,分批送入主控单片机的adc输入端,主控单片机经ch375将被测数据写入usb存储设备或发送至pc机直接处理。
基于usb主机模式下文件级子程序库编程的需要,主控单片机采用宏晶科技有限公司的stc12c5a60s2。该单片机工作频率可达35 mhz,具有1280 b片内ram数据存储器与60 kb片内flash程序存储器,8通道10 bit高速adc,2个全双工异步串行口[4],完全满足数据采集与ch375主/从双模式的控制要求。
usb主机接口电路如图2所示。ch375芯片工作于并口方式,将其txd引脚接地,并行接口挂接到单片机系统总线上。其8 bit双向数据总线d0~d7直接与单片机的p0数据总线相连,地址输入线a0,读、写选通引脚rd、wr和片选信号cs,分别连接至单片机的p5.0~5.3引脚。中断请求输出int连接到单片机的中断输入int0引脚,中断请求为低电平有效。
从控单片机组共有4片stc12c5a60s2,每片第一串口与主控机相连,实现主、从机数据与控制传输。其中3片经并行口、1片经第二串行口与随动数控电路通讯。从控机与随动系统数控电路进行并口通讯的各信号线包括:8 bit数据总线d0~d7,通讯启动信号start,应答信号ack,同步信号syn,中断信号int。
系统工作模式由主控单片机外接键盘动态切换。开机后默认工作于主机模式,等待usb存储设备连接。单片机检测存储设备连接并判断符合要求后,系统可正常测试采集数据,并转存于外接存储设备,供后期导入pc机分析处理。测试条件允许时,也可将系统设置为与pc机直接相连的从机模式。这时,数据采集过程完全由上位机控制,可实现较为复杂的性能参数与故障分析测试,提高工作效率。
3 双模式系统软件设计
使用51系列兼容单片机c语言编程软件keil uvision3编写单片机程序,完成数据采集、通讯控制、数据处理等功能。主程序流程如图3所示。
3.1 主机模式程序设计
厂家提供了适用于单片机操作u盘的文件级子程序库ch375hf6.lib,将主机模式下处理usb存储设备的api进行了封装,支持fat12、fat16和fat32文件系统[5]。该文件级子程序库的所有api函数在调用后都有操作状态返回,但不一定有应答数据,api参数在ch375hf6.h文件内进行说明。调用的api子程序主要有:芯片初始化ch375init( ),查询设备准备好ch375diskready(),查询存储设备信息ch375diskquery(),新建文件ch375filecreate(),打开文件ch375fileopen(),写文件数据ch375bytewrite(),关闭文件ch375fileclose()等[6]。操作u盘存储采集数据的程序流程如图4所示。
采用keil编写u盘操作程序时,需要将ch375hf6.lib库文件和ch375hf6.h添加到项目中。主机模式单片机程序基本框架如下:
ch375_wr_cmd_port(cmd_set_usb_mode);
//设置usb工作模式
ch375_wr_dat_port(6);
//模式代码,已启用的usb主机模式 delayus(20);
//延时
while(ch375diskconnect( )!=err_success)
//查询u盘是否连接
delayms(200); //延时,等待u盘工作正常
while(ch375diskready( )!=err_success)
//检查u盘是否准备好
……
ch375diskquery( );
//查询u盘信息:总容量、剩余容量、文件系统
……
while ( i!=err_success )
{strcpy( mcmdparam.open.mpathname, \test );
//目录名
i=ch375fileopen( );} //打开目录
while(i!=err_success)
{strcpy(mcmdparam.open.mpathname,testdata);
//输入文件名
i=ch375fileopen( ); } //打开文件
……
mcmdparam.write.msectorcount=seccount;
//写入所有扇区的数据
current_buffer=& file_data_buf[0];
//设置存放数据的缓冲区的起始地址
ch375filewrite( ); //向文件写入数据
……
ch375fileclose( ); //关闭文件
3.2 从机模式
此模式下,单片机通过ch375与pc机进行通讯,完成采集方案下载与数据上传,程序流程图如图5所示。
单片机重新初始化ch375并设置为设备工作模式。测试芯片正常连接后,系统可接收pc机发送的数据。主控单片机根据下载的采集方案进行采集测试,并将结果数据存入采集缓冲区,待缓冲区满,则向pc机请求上传。采集结束,数据全部上传,系统完成一个从机模式采集工作过程。从机模式单片机程序基本框架如下:
ch375init(); //初始化ch375
delayms(50); //延时
ch375_wr_cmd_port(cmd_set_usb_mode);
//设置usb工作模式
ch375_wr_dat_port(2);
//模式代码,已启用的内置固件usb设备模式 delayus(20);
//延时
ch375_wr_cmd_port(cmd_check_exist);
//测试工作状态
ch375_wr_dat_port(0x57); //写入测试数据 delayus(10);
//延时
if(ch375_rd_dat_port( )==0xa8);
//读出测试数据是否按位取反,判断工作状态
……
ch375_wr_cmd_port(cmd_get_status);
//中断子程序中,读取中断状态命令
int_sn=ch375_rd_dat_port( ); //读中断号 ……
if (int_sn ==usb_int_usb_ep2_out)
ch375_wr_cmd_port(cmd_rd_usb_data);
//读取上位机测试方案数据并释放缓冲区
……
test_all( ); //按下载方案测试采集数据
……
while (flag_upload == 0) //数据上传未结束
{
……
ch375_wr_cmd_port(cmd_wr_usb_data 7);
//批量上传采集数据
ch375_wr_dat_port(n); //写入上传字节数
for (i=0;i ch375_wr_dat_port(*test_buf ++);
//上传采集结果,指针自动加1
……
}
……
if (int_sn ==usb_int_usb_ep2_in)
//中断子程序中,中断号为端点2发送数据完毕
ch375_wr_cmd_port(cmd_unlock_usb);
//释放缓冲区
基于ch375双模式usb接口芯片,设计完成了主/从双模式的数据采集测试系统。充分利用接口即插即用、便携式的特点,解决了特殊环境下的测试困难问题。同时,系统具有双模式、多单片机的优势,能够满足高标准的测试需求,具有广阔的应用前景。

单片机SPI口初始化设计
有哪些性能优秀的无线蓝牙耳机值得推荐?极致性价比耳机推荐!
为什么要使用CAN总线?
LED虚拟拍摄解析及优缺点
PCB板的内部结构分析
一种多处理器数据采集系统方案
如何理解电路图中电源和接地
视频会议系统的结构及行业管理标准
无人机送货的“人在家中坐,货从天上来”场景或即将到来
深度解析日产新一代CVT变速箱
matlab plot函数用法
关于驱动信号特性提取传导EMI对消技术研究的分析和介绍
塞宾ALAYA耳机怎么样 值不值得买
西门子S7-1200模拟量闭环控制系统-PID控制方案
其实小米已有两手准备,将发布大屏的小米6Plus!
数据采集:智能制造的基础环节
TRITTONARKELITE 7.1声道游戏耳机评测 带给你不一样的游戏体验
松下无线充电参考设计
国产嵌入式AI芯片的未来将会变成什么样
基于柔性传感的包装性能优化系统设计