微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于双模式USB接口的多处理器数据采集系统设计

基于双模式USB接口的多处理器数据采集系统设计

时间:08-06 来源:电子技术应用 点击:

采用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<n;i++) //每次上传n字节
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接口芯片,设计完成了主/从双模式的数据采集测试系统。充分利用接口即插即用、便携式的特点,解决了特殊环境下的测试困难问题。同时,系统具有双模式、多单片机的优势,能够满足高标准的测试需求,具有广阔的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top