基于ATmega128和CH374的USB接口的软硬件设计

发布者:神秘行者最新更新时间:2013-10-15 来源: eefocus关键字:ATmega128  CH374  USB接口 手机看文章 扫描二维码
随时随地手机看文章
随着嵌入式系统的发展,嵌入式MCU需要增加USB接口,以便实现与PC机等USB主机系统的通信。针对这样的需求,解决方案比较多,均有一个共同点,都采用PHILIPS公司的PDIUSBD12芯片,该芯片为并行总线接口,占用过多的MCU端口资源,且与MCU的软件接口编写复杂,同时芯片价格也不便宜。为此,采用南京沁恒电子有限公司的USB芯片CH374设计了一款USB接口,以解决嵌入式MCU与PC机通信问题。CH374不仅价格有优势,该公司还提供了完善的USB驱动程序,且在芯片内部集成了数据缓冲区、被动并行接口、串行接口、命令解释器、通用的固件程序等,这样,以CH374设计的USB设备,不需要详细了解USB通讯协议,开发编程非常方便。

  1 系统硬件设计

1.1 系统原理

该系统以ATmega128单片机和CH374接口芯片为核心。ATmega128单片机是基于AVR RISC结构8位低功耗CMOS微处理器,内部带有128 Kb的系统内可编程FLASH程序存储器;4 Kb的EEPROM;4 Kb的SRAM;串行外围设备接口(SPI);有53个可编程的通用I/O脚,32个通用工作寄存器;有4个灵活的具有比较模式和PWM功能的定时器/计数器(T/C);自带8通道10位ADC,可选的可编程增益;片内振荡器的可编程看门狗定时器:与IEEE1149.1规范兼容的JTAG测试接口,可以用于片上调试;6种可以通过软件选择的省电模式,采用64引脚TQFP与MLF封装;峰值运算速度达16 MIPS,非常适合应用在嵌入式系统中。

USB器件采用CH374.该芯片支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式,内置3端口HUB根集线器,支持低速和全速的控制传输、批量传输、中断传输以及同步/等时传输。CH374具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP /MCU/MPU等控制器的系统总线上。在计算机系统中,CH374的配套软件提供了简洁易用的操作接口,与本地端的单片机通信就如同读写文件,降低了开发难度,除此之外,CH374还提供了节约I/O引脚的SPI串行通讯方式,通过SPI串行接口以及中断输出与单片机/DSP/MCU/ MPU等相连接。系统原理图如图1所示。

图1 系统原理图

  1.2 硬件电路

CH374通过SPI串行接口以及中断输出与单片机连接,以便节约单片机的I/O引脚。CH374芯片的RD#引脚和WD#为低电平(接地)且CS#引脚为高电平(接正电源),则CH374将工作于SPI串口方式。在SPI串口方式下,CH374只需要与ATmega128单片机连接5个信号线:SCS#引脚、SCK引脚、SDI引脚、SDO引脚以及INT#引脚,其它引脚都可以悬空。电路示意图如图2所示。

图2 硬件电路示意图

ATmega128单片机配置为SPI主机时,SPI接口不自动控制PBO(SS#)引脚,必须由用户软件在通信开始前进行处理。对SPI数据寄存器写入数据即启动SPI时钟,将8比特的数据移入CH374芯片。CH374的SPI接口支持SPI模式0和SPI模式3,CH374总是从SPI时钟SCK的上升沿输入数据,并在允许输出时从SCK的下降沿输出数据,数据位顺序是高位在前,计满8位为一个字节。SPI的操作步骤如下:

1)ATmega128产生CH374芯片的SPI片选,低电平有效;
2)ATmega128按SPI输出方式发出一个字节的地址码,用于指定其后读写操作的起始地址;
3)ATmega128发出一个字节的命令码指明操作方向,读操作命令码是COH,写操作命令码是80H;
4)如果是写操作,ATmega128发出一个字节的待写数据,CH374收到并保存到指定地址后地址自动加1,ATmega128继续发出若干个字节的待写数据,CH374依次处理,直到ATmega128禁止SPI片选;
5)如果是读操作,CH374从指定地址读出一个字节数据并输出后地址自动加1,ATmega128收到数据并保存,CH374继续从下一个地址读出数据并输出,直到ATmega128禁止SPI片选;
6)ATmega128禁止CH374芯片的SPI片选,以结束当前SPI操作。

        2 系统软件设计

软件开发采用ATMEL公司的AVR STUDIO 3.53集成开发环境,包括:AVR ASSEMBLER编译器、AVR STUDIO调试功能、AVR PROG串行、并行下载功能、JTAG ICE仿真功能,本设计采用的是JTAG ICE仿真调试。软件设计主要包括固件程序设计、应用程序设计和驱动程序设计3个部分。

2.1 固件程序设计

CH374内置了USB通信中的底层协议,因此单片机程序非常简洁。在外置固件模式下,在完成CH374的初始化工作后,由外部单片机根据需要自行处理各种USB请求,从而完成USB总线连接过程。初始化CH374主要完成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中断*/
}[page]

2.2 应用程序设计

CH374在计算机端提供了应用层接口,应用程序的设计可根据用户的需求进行适当调整。应用层接口是由CH374动态链接库DLL提供的面向功能应用的API,包括设备管理API、数据传输API和中断处理API。

设备管理API主要包括:1)打开、关闭设备;2)获取USB设备,配置描述符;3)复位USB设备。
数据传输API主要包括:1)读取数据块;2)写出数据块。
中断处理API主要包括:1)读取中断数据;2)设定中断服务程序。

使用这些API函数,可以很容易地开发出与硬件电路相配套的应用软件,CH374与计算机连接的上位机总体程序流程图如图3所示。

图3 上位机总体程序流程图

2.3 USB驱动程序设计

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

  3 应用结果

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

图4 1kW碟式斯特林太阳跟踪系统结构图

  4 结束语

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

关键字:ATmega128  CH374  USB接口 引用地址:基于ATmega128和CH374的USB接口的软硬件设计

上一篇:Linux已被移植到Atmel的ATmega微控制器
下一篇:基于AVR的微功耗电刺激器

推荐阅读最新更新时间:2024-03-16 13:28

基于USB接口的数据通信演示板的软硬件实现方案
前言 在开发USB设备时最难的就是固件和驱动程序的开发,要想成功的开发这两部分必须完全熟悉USB协议,而这至少需要五到六个月的时间。南京沁恒公司的CH371芯片是一块屏蔽了USB协议的接口芯片,该芯片固化了设备驱动程序和单片机程序中的协议处理部分,因此不需要去了解复杂的设备驱动程序和USB协议,大大减少了开发周期,也降低了开发难度。本文介绍的演示板就是基于该公司的CH371和CH451芯片的一个简单USB外设,通过这块演示板,不仅可以了解基于USB接口的基本结构,而且还可以熟悉基于这种接口的PC和单片机通信的单片机控制程序和计算机应用程序的编写。 芯片介绍 USB接口芯片CH371 CH371是一个USB 总线的通
[嵌入式]
智能汽车、家庭娱乐系统、工业自动化场景中接口应用设计
随着我的家庭用旅行车逐渐发展为一个家庭影院,我需要更多的USB端口。我至少需要为前排乘客准备两个USB端口,不过我也想让后排乘客能够将不同内容(音乐、视频)上传给车用音响。目前某些汽车为第二排和第三排乘客准备了USB充电端口,使这些乘客能在座位上欣赏音乐、视频。然而,在不久的将来,我希望也能够从这些位置上接收数据。 不过,事实证明,我的这些愿望实现起来还很困难。目前的集线器在很长的距离上转接数据信号,不过它们不能实现常见的智能手机所要求的USB如影随形 (OTG) 或与之相似的技术。USB兼容集线器设计人员试图找到一个替代方法来避开这一功能性欠缺的问题时,会遇到很大的难题。设计人员能够使用开关来将上行端口翻转为下行端口,不过这
[工业控制]
基于I2C总线技术的USB接口设计
1、前言 USB(Universal Serial Bus)通用串行总线是在1994年底由康柏、IBM、Microsoft等多家 公司联合制订的,但是直到1999年,USB才真正被广泛应用。同时,他也得到了各PC厂商、芯片制造商和PC外设厂商的广泛支持,USB外设在国内外以惊人的速度发展,迄今为止,各种USB的外设已经有数千种。为PC外围设备设计USB接口已成为大势所趋。   随着单片机技术的发展,单片机的功能日益强大,外围电路日益复杂,其有限的管脚也就显 得捉襟见肘。目前采用普通单片机外加USB接口芯片开发USB外设时,USB接口器件大都是采 用并行接口与单片机相连接,这样再加上一些控制信号线,总共需要占用单片机十余个管脚 ,对于
[嵌入式]
ATmega128 中断向量
本节说明ATmega128 的中断处理。更一般的AVR 中断处理请参见 P 12“ 复位和中断处理” 。 Notes: 1. 当熔丝位BOOTRST被编程时,复位后程序跳转到Boot Loader。请参见 P 255“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。 2. 当寄存器MCUCR的IVSEL置位时,中断向量转移到Boot区的起始地址。此时各个中断向量的实际地址为表中地址与Boot 区起始地址之和。 3. 地址为$0030 - $0044 的中断在ATmega103 兼容模式中不存在。 Table 24给出了不同的BOOTRST/IVSEL设置下的复位和中
[单片机]
<font color='red'>ATmega128</font> 中断向量
ATmega128 单片机的自动投切开关电源设计
电源技术的发展方向之一是并联运行分布电源系统,以便通过N+1 冗余获得故障容错及冗余功率,并且建立模块式分布电源系统,以增大总负载电流。采用双端驱动集成芯片TL494 输出PWM 脉冲控制主开关的导通来控制电压输出,以ATmega128 单片机为核心,实现大电流时自动由单电源供电投切到双电源并联均流供电,增强了开关电源的带负载能力和提高电源的供电效率。 模块化是开关电源发展的总体趋势,可以采用模块化电源组成分布式电源系统,可以设计成N+1冗余电源系统,并实现并联方式的容量扩展,使整个电源体积重量下降,模块中半导体器件的电流应力小,提高了系统的可靠性。本研究的开关电源在带小负载时为单电源供电,带大负载时(电流超过1.7A)自动投切
[单片机]
于<font color='red'>ATmega128</font> 单片机的自动投切开关电源设计
RS232接口转USB接口的通讯方法
   一、引言      USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效、便利.这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求(IRQs)和直接数据通道(DMAs)等问题.因此,越来越多的开发者欲在自己的产品中使用这种标准接口。而RS-232是单个设备接入计算机时,常采用的一种接入方式,其硬件实现简单, 因此在传统的设备中有很多采用了这种通信方式。 一般的IC卡门禁考勤系统也使用RS-232 接口与PC机通信.如果将USB技术应用于IC卡门禁考勤系统与PC机之间的数据通信,这样,不仅能使IC卡门禁考勤设备具备USB通信的诸多优点,而且对
[嵌入式]
基于ARM的嵌入式的USB接口设计
随着嵌入式系统的广泛应用,各种小型终端需要开发出与外界联系的USB接口。目前,常用的技术有两种。基于单片机的USB接口,特点是需要外置芯片,电路复杂,留下的CPU资源不多;基于ARM的USB接口,特点是资源丰富,但ARM系列产品较多,如果选型不当,还需要搭接较多的外围电路,且不能很好地发挥CPU性能。 USB(Universal Serial Bus)是通用串行总线的缩写,因其具有方便易用,动态分配带宽,容错性优越和高性价比等特点,现已成为计算机的主流接口。 该设计采用三星公司ARM9核的S3C2440A芯片作为CPU,因为该芯片内部集成了控制USB的所有部件,外围电路简单,易于实现。 1 S3C2440A特点 S3C244
[单片机]
基于ARM的嵌入式的<font color='red'>USB接口</font>设计
USB接口单片机SL11R的特点及应用
    摘要: 介绍了USB接口单片机SL11R的主要特点,并简要地说明了SL11R基本应用系统的组成和开发。     关键词: USB 单片机 SL11R SL11R是Scanlogic公司生产的带有USB接口的16位RISC单片机,内核处理速度达48MIPS,有很强的控制功能和灵活的工作方式。SL11R固化有类似于80X86的内部BIOS,可以直接调用,使用非常简单,可以让开发者在很短的时间内完成设计任务。 1 USB接口简介 USB总线是通用串行总线(Universal Serial Bus)的简称,已经成为PC机的标准接口。目前256以上的PC机基本上都已经配置了USB接口。USB接口具
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved