基于USB总线和Aduc831单片机的数据采集系统的设计
由于信息网络化的发展,经常需要将各种设备与主机相连,传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。 PCI总线虽具有高的传输速度(132Mbps)С即插即用"功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个)。ISA总线显然存在着同样的问题。RS-232C串行总线虽然连接简单,但其缺点是传输速度慢(56kbps). 而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用新型高性能单片机Aduc831设计了基于USB总线的数据采集系统。
1.USB简介
1.1USB特点
USB的英文全称为Universal Serial Bus,它是一种快速、双向、同步传输的廉价的并可以进行热拔插的串行接口。它的特点主要有:
1)速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s。
2) 设备安装和配置容易。安装USB设备不必再打开机箱,加减已
安装过的设备完全不用关闭计算机。所有USB设备均支持热插拔,且易于扩展。
3) 使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。
1.2 USB总线协议
USB总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输。
每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(token packet)。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的 USB数据传输,在主机和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性(如方向和缓冲区大小)有关。多数通道在USB设备设置完成后即存在。USB中有一个特殊的通道--缺省控制通道,它属于消息通道,当设备一启动即存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。
2. 硬件设计
2.1 Aduc831简介
ADuC831 是一个完全综合的247 k采样保持数据采集系统,在同一片中 结合了高性能的自校准12位 ADC 多路通道,双12位 DAC通道和可编程8位 MCU。微处理器核心是 8052,提供片内 62 kB 非易失性闪速/电擦除程序存储器。还提供片内 4 kB 非易失性闪速/电擦除数据存储器、256 b RAM 和2 kB 扩展 RAM。
ADuC831 还提供额外的电源监视器, 和一个高精度参考源。片内数字外围设备包括2个16位Σ-Δ DAC, 双输出16位 PWM,看门狗定时器, 定时间隔计数器,3个定时器/计数器, 定时器 3用于波特率产生核 串行接口 I/O (I2C, SPI 和UART) 。
并且片内提供串行下载和调试模式 (通过 UART), 并且通过EA引脚提供单引脚竞争模式。ADuC831 支持 QuickStart 和 QuickStart Plus 升级系统和低成本的软件和硬件工具。
2.2 USBN9603简介
USBN9603是一个集成的USB端点控制器,具有增强的DMA功能。USBN9603集成了一个带有3.3V的调节器的收发器,1个SIE(串行接口引擎),1个8 b并行接口,1个时钟发生器和1个MICROWIRE/PLUS接口。USBN9603可以进行7个端点的数据传输,除了1个端点必须为控制传输端点以外,其他的6个端点可以被配置成中断传输端点、批量传输端点或者等时传输端点;每一个端点都有一个专门的FIFO,控制端点的FIFO长度为8B,其他的为64B。8 b并行接口可以支持多路复用或者非多路复用2种与CPU的接口方式。USBN9603的突出特点为:低EMI(电磁干扰),低等待电流,24M晶振,增强的DMA功能;可使用5V或3.3V电源;总线操作具有异步唤醒的全速静态HALT模式;改进的3.3V电压输入的电压调节器,所有非双向端点都有64B 的FIFO;外部控制器接口简单,编程方便。
2.3 原理图设计
USB数据采集系统硬件模块主要由Aduc831芯片、USB接口芯片USBN9603组成。硬件结构简单,硬件总体结构框图如图1所示.
模拟输入信号A/D转换器,转换结果存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后Aduc831系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。
当USB控制器从USB总线检测到主机启动的某一传输请求后,通过中断方式将此请求通知Aduc831系统,Aduc831系统通过访问USB控制器的状态寄存器和数据寄存器获得与此次传输有关的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。Aduc831与USBN9603接口电路如图2所示。