RS232(UART)接口是一种简略、便利和有用的通讯接口,用处十分广泛。在许多嵌入式运用,如智能仪器仪表、电子设备中,均运用RS232与PC机等外部体系进行通讯,完结上位机对下位机的操控及数据交换等。在体系调试过程中,一般也是经过RS232,将调试数据发送到PC上显示出来。
但在PC机范畴,RS232(COM)串行接口现已从最新一出产的计算机,尤其是笔记本电脑中消失了,而串行接口USB成为了规范的装备。这种改变给硬件工程师带来了不少费事。
现在一般的解决办法是置办一根“USBto RS232”转化电缆,其根本作用是在USB总线上仿真出一个RS232端口。这种办法的首要长处在于:PC运用程序将该USB口衔接当作COM口衔接运用,然后能够使工程师轻松跨过杂乱的USB低层接口协议,仍运用本来了解的,针对COM口操作的办法编写程序代码。
本文将介绍别的一种与上述办法原理相似的规划完结计划,设备之间的表面衔接悉数换成了USB规范物理接口和衔接电缆,但在PC上依然运用针对COM口操作的办法编写程序代码,保留了本来的风格。该计划是选用Cypress公司PSoC宗族中带USB接口的CY7C64215(或CY8C24x94)芯片完结的。
2PSoC、PSoCUSB和USBUART
2.1 PSOC
可编程片上体系(Prograromable System on Chip,PSoC),是Cypress公司近几年推出的一种新式的可编程半导体器材芯片。PSoC由8位微处理器内核,多个可编程的模仿模块和数字模块,硬件乘法累加器,以及I2C、Flash、SRAM等周边外围资源组成。因而,PSoC除了能完结一般MCU的功用外,还可经过可编程模仿和数字模块,灵敏地完结嵌入式体系所需的多种模仿与数字外围功用。PSoC集三种可编程才能于一体,不只具有MCU的可编程才能,还包含了部分可编程逻辑运算功用,一起供给了可编程模仿阵列。经过对寄存器的装备或操控,三者之间还能够和谐作业,是具有真实的混合信号处理才能的可编程片上体系。
PSoC中的数字资源(如定时器、PWM、UART等)和模仿资源(如放大器、比较器、滤波器等)是以数字模块和模仿模块的办法给出。不同类型PSoC芯片的差异首要在于其具有的数字模块和模仿模块的数量不同。用户可依据特定需求来界说这些模块。
PSoC的集成开发环境PSoC Designer也预先为用户界说了近百个常用的数字和模仿资源装备模块。这些预界说的模块称为用户模块,如数字资源有定时器、PWM、UART、 SPI、CRC、PRS等,模仿资源有放大器、比较器、滤波器等,ADC则由若干数字模块和模仿模块组合而成。这使得PSoC开发人员无需经过设置寄存器来构建这些周边设备,只需在PSoC Designer中挑选和放置所需的用户模块并进行参数设定。PSoC Designer不只能装备用户模块,还为用户创建了低层驱动函数,并供给运用这些用户模块的API函数供用户编程时调用。这种新颖的体系规划办法使工程师能够把首要精力会集在上层体系软件的规划作业中,极大地便利了整个体系的规划开发。
2.2 PSoC USB
PSoC系列中的CY7C64215、CY8C24x94芯片不只具有上述PSoC的功用和特色,还包含了一个功用完善的全速(12 Mbps)USB端口。PSoC的USB端口资源契合USB2.O规范,是一个能够作业在12 Mbps速度下的全速器材,具有1个上行端口和1个USB地址的规范要求。PSoC USB包含1个串行接口引擎(SIE),1个PSoC存储器裁定器(PMA),256B的专用SRAM,1个带有内部调节器的全速USB收发器以及2个专用USB引脚。
USB SIE支撑5个端点,包含1个操控端点(端点0)和4个数据端点(端点1、2、3和4)。操控端点经过装备可支撑SETUP、IN和OUT恳求。数据端点可别离独立装备,然后呼应中止、批传输、同步IN或OUT恳求等。SIE使PSoC器材能与USB主机完结全速通讯,并可主动完结以下USB处理使命,无需固件干涉,然后简化了USB流量接口的作业。
①将接纳到的编码数据进行转化,将总线上要传输的数据格式化。
②生成CRC校验和。疏忽那些传送进来的未经过校验和验证的数据包。
③地址查看。疏忽一切地址未指向器材的业务。
④发送恰当的ACK/NAK/Stall握手信号。
⑤辨认符号类型(SETUP、IN、OUT),一旦接纳到有用的符号,即设置恰当的符号位。
⑥辨认帧开始(S()F)并保存帧的数量。
⑦经过PSoC存储器裁定器向USB SRAM发送数据,或从USB SRAM接纳数据。
PSoC存储器判优器(PMA)是PSoC USB专用SRAM与数据SRAM的2个内存块(USB SIE与M8C)之间的接口。PMA可供给8个通道用于传输数据。M8C可运用一切的通道寄存器,但4个非操控USB端点别离由PMA通道寄存器的特定集来分配。
PSoC USB体系资源包含专用的256 B SRAM,其与PSoC内核中所用的SRAM页相同,但不能经过M8C存储器操作指令存取。PSoC USB的专用SRAM只能经过PMA寄存器进行存取。
内部USB收发器与外部USB总线相连,依据USB2.O规范收发信号。在正常的USB操作状态下,收发器直接与SIE衔接,初始化之后无需与用户互动。
就体系级而言,PSoC的全速USB体系资源经过M8C寄存器拜访指令进行操作装备,完结与PSoC其他部分的衔接,并经过2个USB引脚与外部相连。
2.3 USBUART用户模块
USBUART用户模块是PSoC集成开发环境PSoCDesigner中专门为用户运用PSoC USB预先界说的主动装备资源。USBUART完结了USB设备功用,并运用PSoC的1个USB端口来仿真1个COM端口,一起在PSoC器材侧供给了相似于UART的高层API函数。因而运用该用户模块能够便利地代替传统的根据RS232(UART)接口的通讯计划。2种计划的比照如图1所示。
USBUART是在PSoC的USB端口基础上,在USB总线上仿真RS232端口。这种办法的首要长处在于,PC的上层运用程序将此USB设备依旧看作是1个COM衔接,然后使上层操作十分易于完结。这种办法能够运用在从Windows 98SE到Windows XP一切版别的MicrosoftWindows操作体系中的规范COM口驱动程序——MSC0M控件来编写的运用程序中。
USB通讯设备类(CDC)规范界说了许多通讯模型,其间包含了1个在USB上完结串行通讯仿真的笼统操控模型。Microsoft Windows USB调制解调器的驱动程序usbser.sys契合此规范。
在一台新的USB设备第一次衔接到一台WindowsPC时,Windows将要求用户供给驱动程序。Windows2000及今后版别在装置驱动程序时需求一个INF文件。Windows没有为这个usbser.sys驱动程序供给规范的INF文件。为了装置能够在USB上仿真RS232的设备,用户有必要供给一个能够将附加的设备映射到MicrosoftCDC驱动程序的INF文件。USBUART用户模块会主动生成这个必要的INF文件,建立在工程项目的LIB文件夹内供运用。在供给了INF文件后,驱动程序答应USB1设备仿真成1个USB端口。
PC上面向COM口终端运用程序中的设置(波特率、数据位、奇偶校验、中止位和流操控)都不会影响数据传输的功能,由于此刻的COM口实践是 USB设备,运用USB协议来操控数据流。可是,除了流操控以外的COM口终端设置值,在PSoC端能够选用特定的API函数调用检索到,以便在需求时用于真实的RS232设备。