低轼耗数据采集系统的USB接口设计
复信号,此功能便于CP2101器件以及外部电路的电源管理。当在总线上检测到挂起信号时,CP2101将进入挂起模式,可以节省电能。在进入挂起模式时,CP2101会发出SUSPEND与SUSPEND信号。为了避免SUSPEND与SUSPEND
在复位期间处于高电平,使用10kΩ的下拉电阻确保SUSPEND在复位期间处于低电平。
CP2101的USB功能控制器管理USB和UART间所有的数据传输,以及由USB主控制器发出的命令请求以及用于控制UART功能的命令等。CP2101的UART接口处理所有的RS232信号,包括控制和握手信号。CP2101的VBUS与VREGIN引脚必须始终连到USB的VBUS信号上。在VREGIN的输入端加去耦电容(1μF与0.1μF并联)。CP2101与单片机接口是标准UART电平,与计算的USB端口连接是USB标准电路,因此,无论与3V还是5V供电的单片机连接都不需要电平转换。
3USB通信接口的软件程序设计
USB接口程序设计包括三部分:单片机程序开发、USB设备驱动程序开发、主机应用程序开发。三者互相配置才能完成可靠、快速的数据传输。其中USB设备驱动程序Cygnal公司已经提供。这里所要编写的是剩下的两部分。一部分为单片机MSP430F13X的串行通信程序,即对波特率、数据位、校验位、有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置;另一部分为主机对CP2101的通信程序,这部分要在VC++环境中调用API函数实现。
3.1单片机程序设计
在IAREmbeddedWorkbench嵌入式集成开发环境中,编写单片机通信程序,可实现在线编辑修改。MSP430的内核CPU结构是按照精简指令集和高透明指令的宗旨来设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的高效率的仿真指令。以下为系统发送数据的部分应用程序(包括初始化及触发UART端口程序):
#include"msp430x13x.h"
/*************************串口*************************/
voidsend_byte(charsdata){
TXBUF0=sdata;/*发送数据缓存(UTXBUF0)*/
while(IFG1&TUXIFG0)==0);/*目的操作数位测试,发送中断标志*/
}
/*************************main*************************/
voidmain(void){
chara;
uinta=0x0055;
WDTCTL=WDTPW+WDTHOLD;/*停看门狗,WDTCTL看门狗寄存器*/
UCTL0=CHAR;/*8位接收控制寄存器URCTL线路空闲\u24322异步\u26080无反馈8位1位停止位\u26080无校验位*/
UTCTL0=SSEL0;/*发送控制寄存器UTCTL0,UCLK=ACLK时钟*/
UBR00=0x0D;/*32Kb/2400b=13.65,波特率选择寄存器*/
UBR10=0x00;/*高字节*/
UMCTL0=0x6B;/*调节*/
ME1|=UTXE0+URXE0;
/*开USART0TXD/RXD接收/发送允许*/
IE1|=URXIF0;/*打开USART0RX接收中断允许位*/
P3SEL|=0x30;/*P3.4,5=USART0TXD/RXD,选择外围模块功能*/
P3DIR|=0x10;/*目标操作数置位,P3.4=1,输出模式*/
_EINT();/*开中断*/
//主循环
for(;;)
{send_byet(a++);}
}
3.2USB设备驱动程序的安装
当把开发板接到主机的USB端口时系统会提示发现新硬件,并要求安装驱动程序:
先安装CP2101的驱动程序CP2101_Drivers.exe到C:FilestoRS-232BridgeController.
完成上面两步的安装后,在系统的设备管理器中会看见CP21
01虚拟的那个COM口。在以后的设计中就是对这个口进行操作。此时可能应用串口调试助手调试下位机程序,接收发送数据。
3.3主机应用程序设计
《低轼耗数据采集系统的USB接口设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/173684.html
在复位期间处于高电平,使用10kΩ的下拉电阻确保SUSPEND在复位期间处于低电平。
CP2101的USB功能控制器管理USB和UART间所有的数据传输,以及由USB主控制器发出的命令请求以及用于控制UART功能的命令等。CP2101的UART接口处理所有的RS232信号,包括控制和握手信号。CP2101的VBUS与VREGIN引脚必须始终连到USB的VBUS信号上。在VREGIN的输入端加去耦电容(1μF与0.1μF并联)。CP2101与单片机接口是标准UART电平,与计算的USB端口连接是USB标准电路,因此,无论与3V还是5V供电的单片机连接都不需要电平转换。
3USB通信接口的软件程序设计
USB接口程序设计包括三部分:单片机程序开发、USB设备驱动程序开发、主机应用程序开发。三者互相配置才能完成可靠、快速的数据传输。其中USB设备驱动程序Cygnal公司已经提供。这里所要编写的是剩下的两部分。一部分为单片机MSP430F13X的串行通信程序,即对波特率、数据位、校验位、有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置;另一部分为主机对CP2101的通信程序,这部分要在VC++环境中调用API函数实现。
3.1单片机程序设计
在IAREmbeddedWorkbench嵌入式集成开发环境中,编写单片机通信程序,可实现在线编辑修改。MSP430的内核CPU结构是按照精简指令集和高透明指令的宗旨来设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的高效率的仿真指令。以下为系统发送数据的部分应用程序(包括初始化及触发UART端口程序):
#include"msp430x13x.h"
/*************************串口*************************/
voidsend_byte(charsdata){
TXBUF0=sdata;/*发送数据缓存(UTXBUF0)*/
while(IFG1&TUXIFG0)==0);/*目的操作数位测试,发送中断标志*/
}
/*************************main*************************/
voidmain(void){
chara;
uinta=0x0055;
WDTCTL=WDTPW+WDTHOLD;/*停看门狗,WDTCTL看门狗寄存器*/
UCTL0=CHAR;/*8位接收控制寄存器URCTL线路空闲\u24322异步\u26080无反馈8位1位停止位\u26080无校验位*/
UTCTL0=SSEL0;/*发送控制寄存器UTCTL0,UCLK=ACLK时钟*/
UBR00=0x0D;/*32Kb/2400b=13.65,波特率选择寄存器*/
UBR10=0x00;/*高字节*/
UMCTL0=0x6B;/*调节*/
ME1|=UTXE0+URXE0;
/*开USART0TXD/RXD接收/发送允许*/
IE1|=URXIF0;/*打开USART0RX接收中断允许位*/
P3SEL|=0x30;/*P3.4,5=USART0TXD/RXD,选择外围模块功能*/
P3DIR|=0x10;/*目标操作数置位,P3.4=1,输出模式*/
_EINT();/*开中断*/
//主循环
for(;;)
{send_byet(a++);}
}
3.2USB设备驱动程序的安装
当把开发板接到主机的USB端口时系统会提示发现新硬件,并要求安装驱动程序:
先安装CP2101的驱动程序CP2101_Drivers.exe到C:FilestoRS-232BridgeController.
完成上面两步的安装后,在系统的设备管理器中会看见CP21
01虚拟的那个COM口。在以后的设计中就是对这个口进行操作。此时可能应用串口调试助手调试下位机程序,接收发送数据。
3.3主机应用程序设计
《低轼耗数据采集系统的USB接口设计(第2页)》