新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ATmega128和CH374的USB接口设计

基于ATmega128和CH374的USB接口设计

作者: 时间:2012-02-23 来源:网络 收藏

2 系统软件
软件开发采用ATMEL公司的AVR STUDIO 3.53集成开发环境,包括:AVR ASSEMBLER编译器、AVR STUDIO调试功能、AVR PROG串行、并行下载功能、JTAG ICE仿真功能,本采用的是JTAG ICE仿真调试。软件主要包括固件程序设计、应用程序设计和驱动程序设计3个部分。
2.1 固件程序设计
内置了通信中的底层协议,因此单片机程序非常简洁。在外置固件模式下,在完成的初始化工作后,由外部单片机根据需要自行处理各种请求,从而完成总线连接过程。初始化主要完成USB设备的枚举,CH374初始化程序的程序如下:
void CH374_PORT_INIT() /*进行初始化*/
{ unsigned char i;
PORTB |=0x03;/*禁止SPI片选,设置SCS#默认为高电平*/
DDRB |=0x07;/*设置SCS#,SCK,SDI为输出*/
DDRB&=0x08;/*SDO输入*/
SPCR=0x5C;/*设置SPI模式3*/
CH374_DAT_PORT=1;/*设置为使用外置固件的USB设备方式*//*下述启用中断,CH374连接在INT0*/
IT0=0;/*置外部信号为低电平触发*/
IE0=0;/*清中断标志*/
EX0=1;/*允许CH374中断*/
}
2.2 应用程序设计
CH374在计算机端提供了应用层,应用程序的设计可根据用户的需求进行适当调整。应用层是由CH374动态链接库DLL提供的面向功能应用的API,包括设备管理API、数据传输API和中断处理API。
设备管理API主要包括:1)打开、关闭设备;2)获取USB设备,配置描述符;3)复位USB设备。
数据传输API主要包括:1)读取数据块;2)写出数据块。
中断处理API主要包括:1)读取中断数据;2)设定中断服务程序。
使用这些API函数,可以很容易地开发出与硬件电路相配套的应用软件,CH374与计算机连接的上位机总体程序流程图如图3所示。

本文引用地址://m.amcfsurvey.com/article/149575.htm

c.jpg


2.3 USB驱动程序设计
USB驱动程序可以采用WDM(Windows Driver Mode)模式设计。WDM驱动程序采用灵活的分层驱动方法,在用户和物理设备之间存在着几个不同的驱动程序层次,且各层上的WDM驱动程序具有不同优先级。利用WDM设计的驱动程序可根据用户的需要调整,灵活性好,但需要了解操作系统原理及相关硬件工作细节,而且工作量较大。所以,USB驱动程序设计采用CH374芯片厂家提供的通用驱动程序,直接下载后安装即可,大大降低了开发的难度。

3 应用结果
文中所设计的USB在1kW碟式斯特林太阳能热发电装置中得到了应用,实现对太阳高度角和方位角的跟踪,系统结构如图4所示。该发电装置对太阳的跟踪采用视日运动轨迹法,所需要的太阳赤纬度角δ、纬度角δ和时角δ由计算机通过USB接口芯片CH374写入单片机,然后单片机通过一套计算公式计算出太阳的位置,即实际时刻太阳所在高度角和方位角,输出一定的脉冲数,驱动伺服电机转动,使发电装置转到要求的位置,实现对太阳的跟踪。同时,通过CH374把整个发电装置的状态数据发给计算机,在计算机显示,以便实现人机对话,为今后在25 kW碟式斯特林太阳能热发电系统的研制打下基础。实践证明,该USB接口工作稳定、可靠,成本较低,完全能够满足碟式斯特林太阳能热发电装置的控制指标要求,取得了良好的应用效果。

d.jpg



4 结束语
和CH374为核心,通过SPI串口通讯方式设计了一款USB接口,系统硬件简单,不需要编写复杂的USB驱动程序,利用其动态链接库即可实现USB与PC的通信,研发简单,易于实现。该设计在实际项目中投入了使用,效果良好,具有一定的设计参考价值。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭