




已阅读5页,还剩87页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实际应用中 通常要遇到PC与单片机系统的通信问题 由于PC和单片机 如MCS 51 都具有串口 因此经常使用串口完成两者之间的数据交换 本章主要介绍RS 232C串行通信技术以及在Windows环境下编写串口通信程序的方法 USB接口技术以及相应的开发实例 第7章PC端接口技术 RS 232串行通信技术USB接口技术实践与思考 本章主要内容 第7章PC端接口技术 RS 232串行通信技术 目前已经有几种 RS 232标准是目前常用的串行通信接口标准 它是美国EIA 电子工业联合会 与BELL等公司一起开发的1969年公布的通信协议 它适合于数据传输速率在0 20Kbps范围内的通信 这个标准对串行通信接口的有关问题 如信号线功能 电器特性都做了明确规定 由于通信设备厂商都生产与RS 232C制式兼容的通信设备 因此 它作为一种标准 目前已在计算机通信接口中广泛采用 RS 232串行通信技术 RS 232C标准介绍简单的串行通信协议的设计MSComm控件介绍使用VB开发串行口通信软件使用VC 开发串行口通信软件 RS 232C标准介绍 1 RS 232C中的引脚定义 RS 232C标准介绍 2 RS 232C的电气特性 RS 232C标准对逻辑电平的定义 在TXD和RXD上 逻辑1 MARK 3 15V 逻辑0 SPACE 3 15V 在RTS CTS DSR DTR和DCD等控制线上 信号有效 接通 ON状态 正电压 3 15V 信号无效 断开 OFF状态 负电压 3 15V RS 232C与TTL转换 EIA RS 232C是用正负电压来表示逻辑状态的 为了能够同计算机接口或终端的TTL器件连接 必须在EIA RS 232C与TTL电路之间进行电平和逻辑关系的变换 实现这种变换的方法可用分立元件 也可用集成电路芯片 目前较为广泛地使用集成电路转换器件 如MC1488 SN75150芯片可完成TTL电平到EIA电平的转换 而MC1489 SN75154可实现EIA电平到TTL电平的转换 RS 232C标准介绍 左图显示了1488和1489的内部结构和引脚 MC1488的引脚 2 4 5 9 10 和 12 13 接TTL输入 引脚3 6 8 11输出端口接EIA RS 232C MC1498的14的1 4 10 13脚接EIA输入 而3 6 8 11脚接TTL输出 具体连接方法如右图所示 RS 232C标准介绍 3 RS 232C接口的电平转换 RS 232C电平采用负逻辑 即 逻辑 0 5 15V逻辑 1 5 15V RS 232C不能和TTL电平直接相连 使用时必须进行电平转换 否则将使TTL电路烧坏 实际应用时必须注意 常用的电平转换集成电路除了上面所介绍的传输线驱动器MC1488和传输线接收器MC1489 另一种常用的电平转换电路是MAX232 MAX232芯片可完成TTL EIA双向电平转换 图为MAX232引脚图 简单的串行通信协议的设计 PC和单片机最简单的连接是零调制三线经济型 下图给出了采用MAX232芯片的PC和单片机串行通信接口电路 与PC相连采用9芯标准插座 2 PC通信软件 1 单片机通信软件 MCS 51通过中断方式接收PC发送的数据 并回送 单片机串行口工作在方式1 晶振为6MHz 波特率2400 定时器T1按方式2工作 经计算定时器预置值为0F3H SMOD 1 参考程序 PC方面的通信程序可以用汇编语言编写 也可以用其他高级语言例如VB VC来编写 汇编语言编写的参考程序 MSComm控件介绍 在Windows环境下 串口是系统资源的一部分 应用程序要使用串口进行通信 必须在使用前向操作系统提出资源申请要求 打开串口 通信完成后必须释放资源 关闭串口 在Windows的系统函数中 均包含了支持通信中断的功能 对串口通信而言 Windows为相应的串口设备开放了用户定义的输出缓冲区和输入缓冲区 应用程序只能对输入 输出缓冲区进行操作 数据进出串口的操作均由系统后台完成 以接收为例 系统每接收一个字符就产生一个低级的硬件中断 系统的串口驱动程序将接收到的字符送入输入缓冲区 此时应用程序就可以通过访问输入缓冲区得到接收到的字符信息 MSComm控件介绍 Windows为用户提供了两种方式实现串口通信 使用串口通信控件使用Windows的API应用程序接口 使用串口通信控件进行串口程序开发极为方便 如果不需要对串口进行高级控制一般多选择使用MSComm控件进行开发 本章介绍在VB下使用MSComm控件进行计算机实验室温控系统串口程序开发 使用串口通信控件 针对串口通信 微软公司专门提供了MSComm控件 使用该控件进行串口通信设计是十分方便的 程序员不必花时间去了解较为复杂的API函数 通过简单修改控件的属性和使用控件提供的方法 就可以实现对串口的配置 完成串口接收和发送数据 使用Windows的API应用程序接口 在Windows中 串口是以文件的形式被打开和访问的 串口和串口通信驱动需要使用设备控制块 DeviceControlBlock DCB 进行配置 应用程序使用API函数CreateFile打开串口 ReadFile读串口 CreateEvent建立事件对象和CloseHandle关闭串口 使用Windows的API应用程序接口 MicronsoftCommunicationsControl MSComm 是Micronsoft公司提供的简化Windows下串口通信编程的ActiveX控件 它为应用程序提供了通过串口收发数据的简便方法 在串口编程中 使用MSComm控件非常方便 仅需通过简单修改控件的属性和使用控件提供的方法 就可以实现对串口的配置 完成串口接收和发送数据等任务 使用Windows的API应用程序接口 1 MSComm控件的通信方法 MSComm控件提供了两种处理通信的方式 事件驱动方式和查询方式 2 MSComm控件的属性与常数 CommPort属性 设置并返回通信端口号 端口号的范围为1 16 但如果用PortOpen属性打开一个并不存在的端口时 MSComm控件会产生错误68 设备无效 RThreshold属性 设置返回要接收的字符数 接收字符后 如果RThreshold属性被设置为0 默认值 则不产生OnComm事件 如果RThreshold被设成n 则接收缓冲区收到n个字符时MSComm控件产生OnComm事件 CTSHolding属性 确定是否通过查询ClearToSend CTS 线的状态发送数据 该属性在设计时无效 在运行时为只读 使用Windows的API应用程序接口 SThreshold属性 设置并返回传输缓冲区中允许的最小字符数 若SThreshold属性被设置为0 默认值 时 数据传输不会产生OnComm事件 而当SThreshold属性被设为1 当传输缓冲区完全空时 MSComm控件产生OnComm事件 CDHolding属性 通过查询CarrierDetect CD 线的状态确定是否有传输 该属性在设计时无效 在运行时为只读 DSRHolding属性 确定DataSetRead DSR 线的状态 该属性在设计时无效 在运行时为只读 Settings属性 设置返回波特率 奇偶校验 数据位 停止位参数 当端口打开时 如果属性值非法 则MSComm控件产生错误380 非法属性值 各个属性值间用逗号隔开 其中BBBB为波特率 P为奇偶校验 D为数据位数 S为停止位数 其默认值为 9600 N 8 1 Settings属性的设置由4个设置组成 格式如下 InputLen属性 设置并返回Input属性从接收缓冲区中读取的字符数 InputLen属性的默认值是0 设置InputLen为0时 使用Input将使MSComm控件读取缓冲区中全部的内容 使用Windows的API应用程序接口 使用Windows的API应用程序接口 EOFEnable属性 确定在输入过程中MSComm控件是否寻找文件结尾 EOF 字符 如果找到EOF字符 将停止输入并激活OnComm事件 此时CommEvent属性设置为comEvEOF 语法 object EOFEnable value EOFEnable属性语法包括下列部分 value布尔表达式 确定当找到EOF字符时 OnComm事件是否被激活 如 设置值 中所描述 value的设置值为True 当EOF字符找到时OnComm事件被激活 value的设置值为False 默认 当EOF字符找到时OnComm事件不被激活 当EOFEnable属性设置为False OnComm控件将不在输入流中寻找EOF字符 说明 使用Windows的API应用程序接口 Handshake常数 Handshake常数如表所示 OnComm常数 OnComm常数如表所示 使用Windows的API应用程序接口 Error常数 Error常数如表所示 使用Windows的API应用程序接口 InputMode常数 InputMode常数如表所示 使用Windows的API应用程序接口 3 错误消息 MSComm控件 表列出MSComm控件可以捕获的错误 使用Windows的API应用程序接口 使用VB开发串行口通信软件 用户界面设计初始化程序发送数据接收数据其他工作 使用VB开发串行通信程序的详细步骤 用户界面设计 添加控件 最终完成界面 添加用户界面 新工程界面 新建工程 用户界面设计 修改界面上各控件的属性如下表所示 初始化程序 程序的初始化部分主要完成对串口的设置工作 包括串口的选择 波特率及帧结构设置 打开串口以及发送和接收触发器的时间控制等 此外 在程序运行前 还应进行清除发送和接收缓冲区的工作 这部分工作是在窗体载入的时候完成的 因此应将初始化代码放在Form Load 函数中添加如下代码 这样就完成了程序的初始化工作 初始化程序 初始化代码PrivateSubForm Load MSComm CommPort 2 设置串口2MSComm Settings 9600 N 8 1 波特率9600bps 无校验 8位数据 1位停止位MSComm InputLen 0 读取接收缓冲区的所有字符MSComm InBufferSize 1024 设置接收缓冲区为1024字节MSComm OutBufferSize 512 设置发送缓冲区为512字节MSComm PortOpen True 打开串口MSComm SThreshold 0 不触发发送事件MSComm RThreshold 1 每一个字符到接收缓冲区都触发接收事件MSComm InBufferCount 0 清除发送缓冲区数据MSComm OutBufferCount 0 清除接收缓冲区数据Text SEND Text 清空发送文本框Text RECV Text 清空接收文本框EndSub 发送数据 本例中 发送数据的过程是通过单击 发送数据 按钮来完成的 程序应完成下面的工作 1 单击 发送数据 按钮 程序检查发送文本框中的内容是否为空 如果为空 则终止发送命令 警告后返回 2 检测串口是否处于打开状态 如串口关闭 则打开串口 3 将发送文本框中的内容送入MSComm的发送缓冲区 等待数据发送 发送数据 双击 发送数据 部分 添加Button Send Click 函数 其代码如下 发送数据PrivateSubButton SEND Click DimxAsStringIfText SEND Text Then 发送数据不能为空x MsgBox 发送数据不能为空 16 ExitSubEndIfIfNotMSComm PortOpenThen 保证串口打开MSComm PortOpen TrueEndIfMSComm Output Text SEND Text Chr 13 发送数据Fori 1To20000000 延时NextEndSub 接收数据 接收数据部分使用了事件响应方式 当串口收到数据使得数据缓冲区的内容超过1字节时就会引发comEvReceive事件 OnComm 函数负责捕捉这一事件 并负责将发送缓冲区的内容送入输出文本框显示 OnComm 函数还对错误信息进行捕捉 当程序发生缓冲区溢出之类的错误时 由程序员负责将缓冲区清空 接收数据 要实现上述功能 首先要双击MSComm控件创建OnComm 并输入代码 接收数据PrivateSubMSComm OnComm SelectCaseMSComm CommEvent 检验串口事件 错误处理CasecomEventOverrun 数据丢失Text SEND Text 清空发送缓冲区Text RECV Text 清空接收缓冲区Text SEND SetFocusExitSubCaseComEventRxOver 接收缓冲区溢出Text SEND Text 清空发送缓冲区Text RECV Text 清空接收缓冲区Text SEND SetFocusExitSub 接收数据 CaseComEventTxFull 发送缓冲区已满Text SEND Text 清空发送缓冲区Text RECV Text 清空接收缓冲区Text SEND SetFocusExitSub 事件处理CaseComEvReceive 接收缓冲区内有数据DimstrAsStringstr MSComm Input 从接收队列中读入字符串Text RECV Text Text RECV Textstr 读出字符串送显EndSelectEndSub 其他工作 完成通信的主要功能后 还需要输入程序完成其他两个按钮的功能 这两个按钮负责清除发送和接收两个文本框的内容 该部分代码内容十分简单 其代码实现如下 清空接收文本框PrivateSubButton RECV C Click Text RECV Text 清空接收文本框Text SEND SetFocusEndSub 清空发送文本框PrivateSubButton SEND C Click Text SEND Text 清空发送文本框Text SEND SetFocus 其他工作 使用该软件实现通信效果的界面如图所示 运行测试程序 使用VC 开发串行口通信软件 用户界面设计初始化程序发送数据接收数据其他工作 使用VisualC 6 0 VC 6 0 开发串口通信软件的方法 用户界面设计 新建工程步骤1 新建工程步骤2 建立新工程后界面 编辑程序界面 添加控件 最终完成界面 用户界面设计 修改程序界面用到的各个控件的属性后 要使用这些控件 还需要为其添加对应的变量 该项工作是使用ClassWizard面板来完成的 在 MemberVariables 选项卡中相应控件的ControlID MFC单击 AddVariables 按钮为相应控件添加对应变量 ClassWizard面板 添加控件对应变量 用户界面设计 各个控件添加变量的具体设置如表所示 添加变量后的ClassWizard面板如图所示 初始化程序 在VC中 需要将这部分代码添加到对话框类的OnInitDialog 函数中 if m MSComm GetPortOpen 如果串口已打开 则关闭串口m MSComm SetPortOpen FALSE m MSComm SetCommPort 2 选择COM2if m MSComm GetPortOpen m MSComm SetPortOpen TRUE 打开串口elseAfxMessageBox serialportopenerror m MSComm SetSettings 9600 n 8 1 设置波特率9600 无校验 8位数据位 1位停止位m MSComm SetRThreshold 1 串口接收缓冲区中有多于或等于1个字符时将产生接收数据的OnComm事件m MSComm SetInputLen 0 设置当前接收区数据长度为0m MSComm GetInput 预读缓冲区以清除残留数据 接收数据 当MSComm的接收缓冲区有字符时 程序会发送事件消息 OnComm 函数响应该消息并进行处理 由于MSComm类的GetInput 函数返回的数据变量类型为Variant型 而编辑框对应的显示字符串是Cstring型 因此接收数据时 需要先进行类型转换 在VC中 转换过程如下 OnComm 函数的完整代码 将Variant类型转换为ColeSafeArray类型 将ColeSafeArray类型转换为BYTE型数组 将BYTE型数组转换为Cstring变量 发送数据 发送数据功能使用 发送数据 按钮对应函数Onsend 来实现 发送数据时 程序仅需要读出发送编辑框的内容 将其转化为发送程序需要的数据格式后 再使用C语言中的强制类型转换功能 将其转换为ColeVariant数据类型 由MSComm类的SetOutput 函数送入发送缓冲区即可 发送函数OnSend 的源代码 其他工作 voidCRS232 VCDlg OnClr TODO Addyourcontrolnotificationhandlercodeherem str send 清空发送文本框m str recv 清空接收文本框UpdateData FALSE 更新文本框内容 清空 按钮用于清除发送编辑框和接收编辑框中的已有内容 其相应函数OnClr的代码如下 其他工作 运行测试程序 连接串口线 启动软件后 首先勾选 十六进制发送 接收 单选框 在发送文本框中添入数据 0235084A 的字符串 单击 发送 按钮 然后删除发送文本框中的内容 去掉 十六进制发送 接收 的勾选 再填入数据 Goodbye 软件的测试效果如图所示 USB接口技术 USB的全称为UniversalSearialBus 即通用串行总线 与RS 232类似 USB总线也是一种串行外围设备连接的总线形式 它是1995年由Microsoft Compaq IBM等公司联合制定的一种新的PC串行通信协议 从推出之日起就得到了各大厂商的广泛支持 得以不断完善和发展 目前USB协议的最新版本已经达到了2 0 USB总线作为一种新的串行总线 不仅在传输速度上得到了极大的提高 同时还具有接口简单 真正的即插即用 传输线供电 多设备级联等特性 USB总线的成功推出 对外设的接口产生了广泛的影响 目前使用USB总线接口的如键盘 鼠标 闪存 摄像头等外围设备在市场上已广泛存在 本节将系统地介绍USB总线开发的相关知识 帮助读者尽快熟悉USB开发流程 USB接口技术 USB总线介绍EZ USB系列接口控制芯片EZ USB固件程序开发USB通信设计要点 USB总线介绍 USB设备主要具有以下优点 1 可以热插拔 2 携带方便 3 标准统一 4 可以连接多个设备 USB的互联USB的设备USB的主机 USB的互联主要包括以下几方面 USB的总线结构USB的电气特性与电源管理USB总线协议系统设置数据流种类USB设备USB主机 硬件和软件 一个典型的USB系统的描述如下 它主要被定义为3个部分 USB的总线结构 USB连接了USB设备和USB主机 USB的物理连接是有层次性的星形结构 每个网络集线器是在星形的中心 每条线段是点点连接 从主机到集线器或其功能部件 或从集线器到集线器或其功能部件 在任何USB系统中 只有一个主机 USB和主机系统的接口称为主机控制器 主机控制器可由硬件 固件和软件综合实现 根集线器是由主机系统整合的 用以提供更多的连接点 USB的总线结构 USB的设备如下所示 网络集线器 向USB提供了更多的连接点 功能器件 为系统提供具体功能 如ISDN的连接 数字的游戏杆或扬声器 USB设备提供的USB标准接口的主要依据 对USB协议的运用 对标准USB操作的反馈 如设置和复位 标准性能的描述性信息 USB的电气特性与电源管理 1 电气特性 USB的高速信号的比特率定为12Mbps 低速信号传送的模式定为1 5Mbps 低速模式需要更少的EMI保护 两种模式可在用同一USB总线传输的情况下自动地动态切换 USB传送信号和电源是通过一种4线的电缆 图中的两根线用于发送信号 存在两种数据传输率 USB的电气特性与电源管理 2 机械特性 所有设备都有一个上行的连接 上行连接器和下行连接器不可简单地互换 这样就避免了集线器间非法的循环往复的连接 电缆中有4根导线 一对互相缠绕的标准规格线 一对符合标准的电源线 连接器有4个方向 具有屏蔽层 以避免外界干扰 并有易拆装的特性 3 电源 电源分配 即USB的设备如何通过USB分配得到由主计算机提供的能源 电源管理 即通过电源管理系统 USB的系统软件和设备如何与主机协调工作 电源主要包括以下两个方面 USB总线协议 USB总线属一种轮询方式的总线 主机控制端口初始化所有的数据传输 存在两种类型的通道 流和消息 事务预处理允许对一些数据流的通道进行控制 从而在硬件级上防止了对缓冲区的高估或低估 通过发送不确认握手信号从而阻塞了数据的传输速度 系统设置 1 USB设备的安装 主机对每个设备指定唯一的USB地址 并检测这种新装的USB设备是集线器还是功能部件 2 USB设备的拆卸 当USB设备从集线器的端口拆除后 集线器关闭该端口 并且向主机报告该设备已不存在 3 总线标号 总线标号就是对连接在总线上的设备指定唯一地址的一种动作 数据流种类 控制数据传送 在设备连接时用来对设备进行设置 还可对指定设备进行控制 如通道控制 批量数据传送 大批量产生并使用的数据 在传输约束下 具有很广的动态范围 中断数据的传送 用来描述或匹配人的感觉或对特征反应的回馈 同步数据的传送 由预先确定的传送延迟来填满预定的USB带宽 对于任何指定的设备进行设置时一种通道只能支持上述一种方式的数据传输 USB的结构包含4种基本的数据传输类型 USB设备 USB设备分为诸如集线器 分配器或文本设备等种类 集线器类指的是一种提供USB连接点的设备 USB设备需要提供自检和属性设置的信息 USB设备必须在任何时刻执行与所定义的USB设备状态相一致的动态 1 设备特性 当设备被连接 编号后 该设备就拥有一个唯一的USB地址 设备就是通过该USB地址被操作的 每一个USB设备通过一个或多个通道与主机通信 所有USB设备必须在零号端口上有一指定的通道 每个USB设备的USB控制通道将与之相连 通过此控制通道 所有的USB设备都列入一个共同的准入机制 以获得控制操作的信息 此类信息主要有以下几类 USB设备 标准信息 这类信息是对所有USB设备的共同性的定义 包括一些如厂商识别 设备种类 电源管理等的项目 设备设置 接口及终端的描述在此给出 类别信息 此类信息给出了不同USB的设备类的定义 主要反映其不同点 USB厂商信息 USB设备的厂商可自由地提供各种有关信息 其格式不受该规范制约 此外 每个USB设备均提供USB的控制和状态信息 USB设备 2 功能部件 功能部件是一种通过总线进行发送接收数据和控制信息的USB设备 通过一根电缆连接在集线器的某个端口上 功能设备一般是一种相互无关的外部设备 定位设备 如鼠标或光笔 输入设备 如键盘 电信适配器 如ISDN 一个集线器包括两部分 集线控制器 Controller 和集线放大器 Repeater 集线放大器是一种在上游端口和下游端口之间的协议控制开关 而且硬件上支持复位 挂起 唤醒的信号 1 集线器 2 设备描述 USB设备 台式机环境下的集线器 USB主机 硬件和软件 USB的主机通过主机控制器与USB设备进行交互 主机功能如下 检测USB设备的安装和拆卸 管理在主机和USB设备之间的控制流 管理在主机和USB设备之间的数据流 收集状态和动作信息 提供能量给连接的USB设备 EZ USB系列接口控制芯片 使用嵌入MCU的USB控制器 CPU只需要访问一系列寄存器和存储器 便可实现USB口的数据传输 从而简化了程序的设计 并且供应商还提供许多范例电路和测试代码 使设计者从复杂的协议解释中得到解脱 现在 许多芯片制造商开始生产一些基于通用MCU的USB控制器 采用研制人员所熟知的指令集 大大简化了编程的难度 如基于8051结构的USB控制器有 Intel公司的8X930A 8X931A CYPRESS公司的EZ USB等 此外 还有基于MITSUBISHI740 7600 M16C的USB芯片 基于MOTORORAHC05系列的USB芯片等 本节中介绍EZ USB2100系列单片机 EZ USB系列接口控制芯片 EZ USB组成结构及特性EZ USB微处理器AN2131Q的封装和引脚描述EZ USB的枚举和再枚举EZ USB端点EZ USB的存储空间 EZ USB组成结构及特性 1 EZ USB芯片组成结构 EZ USB的组成框图 EZ USB组成结构及特性 2 EZ USB特性 1 改进的8051内核 性能可达到标准8051的5 10倍 与标准8051的指令完全兼容 2 高度集成 EZ USB将上述多个模块集成在一个芯片中 从而减少了各芯片接口部分时序配合时的麻烦 3 USB内核 EZ USB系列芯片接收全部USB的吞吐量 这种采用EZ USB的设计 不受端点数目 缓冲区大小及传输速度的限制 EZ USB组成结构及特性 4 软配置 这个特性给USB外设开发者带来许多方便 如开发过程中 当固件需要修改时 可以在PC上修改好以后 下载到EZ USB 从而省去了编程芯片的麻烦 这种基于RAM的软配置方法 可以允许无限的配置和升级 5 易用的软件开发工具 驱动程序和固件的开发与调试相互独立 可加快开发的速度 EZ USB微处理器 EZ USB微处理器是一个改进的8051内核 使用标准8051指令系统 其指令执行速度比标准8051快 改进的8051内核还有以下几处结构上的改进 1 第2个数据指针 可用于存储器块之间的传输 2 第2个UART 3 第3个16位计数器 定时器 TIMER2 4 与非多路复用16位地址总线的高速存储器直接接口 5 增加了7个中断源 INT2 INT5 PFI T2和UART1 6 可变的MOVX执行时间可适应高 低速的RAM外设 7 256字节的内部寄存器RAM 8K字节的程序 数据复合SRAM 8 3 3V工作电压 EZ USB集成芯片在8051的基础上又有其他的改进 快速外部数据块传输 指针自动增量 快速传输模式 USB中断向量 CONTROL传输的SETUP和DATA部分有各自的缓冲器 AN2131Q的封装和引脚描述 EZ USB2100系列中80引脚封装的AN2131Q的引脚排列图 AN2131Q的封装和引脚描述 DISCON 引脚1 输出 该引脚由两个位DISCOE和DISCON控制 当DISCOE 0时 引脚悬空 当DISCOE 1时 驱动引脚 驱动的逻辑与DISCON位相反 USBD USBD 引脚77 79 高阻态 USBD D 信号 将24 振荡器与USBD D 引脚相连 A0 A15 引脚7 12 15 16 26 29 34 37输出 8051地址总线 D0 D7 引脚48 51 57 60 I O 高阻态 8051数据总线 该双向总线空闲时处于高阻状态 总线读时为输入 总线写时为输出 AN2131Q的封装和引脚描述 PSEN 引脚80 输出 程序存储器使能端 引脚接低电平时有效 表示从外部存储器中读取程序 当EA为低电平时 程序存储器的地址从0X1B40开始 当EA为高电平时 程序存储器的地址从0X0000开始 PA0 PA7 引脚68 71 73 76 I O 多功能输入 输出引脚 PB0 PB7 引脚44 47 52 55 I O 多功能输入 输出引脚 PC0 PC7 引脚30 33 38 41 I O 多功能输入 输出引脚 AN2131Q的封装和引脚描述 BKPT 引脚61 输出断点 当8051地址总线与BPADDRH L寄存器的内容一致 且USBBAV寄存器中的断点使能 BPEN 时 该引脚被激活 高电平 如果USBBAV寄存器中的BPPULSE位为高 就产生8个24MHz高电平的时钟脉冲 如果BPPULSE位为低 保持高电平直到8051清除USBBAV寄存器中的BREAK位 写1 RESET 引脚25 输入有效高电平复位 使8051和SIE复位 该引脚一般通过1个10k 电阻接地 用1个1 F电容接VCC AN2131Q的封装和引脚描述 EA 引脚24 输入 访问外部存储器 该引脚有效 HI 时 8051并不是从内部程序RAM中获得代码 而是从外部存储器中读取代码 当EA 0时 8051从外部存储器的0X1B40地址 AN2131 开始读取代码 AVCC 引脚21 电源 AnalogVCC 模拟电源 该引脚为芯片的模拟部分提供电源 AGND 引脚18 电源 AnalogGround 模拟地 尽可能以最短路径接地 AN2131Q的封装和引脚描述 XIN 引脚19 输入晶振输入 该引脚经由12MHz晶振和22 33pF电容接地 它也能用12MHz的时钟电路驱动 XOUT 引脚20 输出 晶振输出 该引脚经由12MHz晶振和22 33pF电容接地 当XIN由12MHz时钟电路驱动时 该引脚悬空 WAKEUP 引脚66 输入 USB唤醒 当8051挂起时 该引脚上的一个上升沿可开启振荡器 向8051发出中断 请求推出挂起状态 维持WAKEUP 的低电平可避免EZ USB芯片进入挂起状态 AN2131Q的封装和引脚描述 SCL 引脚65 OD 漏极开路 I2C时钟 即使没有I2C设备相连 也要用2 2k 电阻接VCC SDA 引脚64 OD 漏极开路 I2C数据 即使没有I2C设备相连 也要用2 2k 电阻接VCC CLK24 引脚4 输入 24MHz时钟 可锁定为12MHz输入时钟 当CPUCS寄存器中的OUTCLKEN 0时没有输出 NC 引脚67 该引脚不连接 EZ USB的枚举和再枚举 PC运行时 若插上或拔去一个USB设备 Windows系统便会自动装载或卸去设备的驱动程序 即所谓的即插即用 这一系列动作的自动完成归因于在每一个USB设备里都有一个描述符表 记录了设备的要求和性能 当插上USB时 要经过以下几个步骤 EZ USB的枚举和再枚举 1 主机向地址0发送 Get Descriptor Device 请求 设备第一次连接时 必须响应地址0 2 设备响应该请求 并将ID数据发送给主机 3 主机向设备发出 Set Address 请求 给设备提供一个唯一的地址 以区别其他与总线相连的设备 4 主机发出 Get Descriptor 请求 获取更多的设备信息 据此 主机可以了解到该设备的其他情况 如该设备的端点个数 电气要求 所需带宽 然后下载程序 EZ USB的枚举和再枚举 为了支持软特性 EZ USB芯片能自动地作为一个不需要固件的USB设备进行枚举 所以 USB接口本身可用来下载8051的程序和描述符表 当8051复位时 EZ USB的内核进行最初 通电 的枚举和下载 这种支持程序下载的最初USB设备被称为 默认的USB设备 在代码描述符表从主机中下载到EZ USBRAM后 8051脱离复位状态 开始执行设备程序 EZ USB设备再次枚举 这一次是作为装入的设备 第二次枚举称为 再枚举 再枚举的完成是EZ USB芯片通过给USB加电 模拟物理断开和重连接来完成的 EZ USB端点 由于USB是串行总线 因此设备端点实际上是一个FIFO存储器 主机通过发出4位地址及1位方向位 选择设备端点 所以 USB可定位32个端点 IN0 IN15和OUT0 OUT15 8051从OUT缓冲区中读取端点数据 将通过USB传输的端点数据写入IN缓冲区 USB端点有4种类型 1 块 Bulk 2 控制3 中断4 同步 EZ USB的存储空间 EZ USB的RAM被分为两部分 一部分用做程序存储空间 另一部分用做数据存储空间 包括EZ USB的数据传输缓冲区和控制寄存器 1 8051存储器 EZ USB系列芯片中 RAM空间可以是4KB或8KB 两者的地址分配空间是不同的 对8KB的片内RAM 其中通用功能的RAM占用0X0000 0X1B3F 共6976个字节 这部分RAM可以通过EZ USB内核或I2C总线上E2PROM写入指令代码或数据 EZ USB的存储空间 EEZ USB使用RD信号 WR信号和PSEN信号扩展外部存储器 外部存储器地址最大可以扩展为0X0000 0XFFFF 如果扩展外部存储器既被用做程序存储器又被用做数据存储器 可以将RD信号和PSEN信号进行逻辑或形成OE信号后接入存储芯片读信号 将RD WR和PSEN进行逻辑或形成CS信号做选通信号 2 EZ USB扩展存储器 EZ USB的存储空间 当EA 0时 内部存储器的地址分配不变 对外部数据存储器 0X0000 0X01FF和0X7F40 0X7FFF可以用做数据RAM 但RD WR CS和OE不可用 对外部程序存储器 0X0000 0X1B40可以用做代码RAM 但不产生PSEN选通信号 当EA 1时 内部RAM和外部数据存储器的地址分配方式与EA 0时相同 但程序存储器将完全指向外部存储器 这样内部程序存储器完全被用做数据存储器 EZ USB固件程序开发 人机接口设备 HID 类是Windows完全支持的USB总线设备类型中的一种 在运行Windows98或更高版本操作系统的PC上 应用程序可以与HID进行通信 对于主机的驱动和HID通信 设备必须使用相应的固件程序来满足一定的要求 通过固件程序的调度 主机才可以得到设备的描述符表以及完成端点数据的传输 固件基础EZ USB固件程序架构EZ USB固件程序开发实例 固件基础 1 HID类描述符表 HID类描述符表的主要目的是识别HID通信中所使用的其他描述符表 类描述符表可以有7个或更多个字段 这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第五单元写作:学写游记++课件-2024-2025学年八年级语文下册同步备课精讲课件(统编版)
- 玛莎法则患者安全2025
- 快乐体育在大学体育教学中的实施研究
- 物理因子试题及答案详解
- 2025年河南省驻马店市中考三模语文试题(含答案)
- 2025公立中学教师劳动合同
- 2025年中国水暖管道零件制造行业市场前景预测及投资价值评估分析报告
- 2025年中国室内自行车滚轮行业市场前景预测及投资价值评估分析报告
- G新基建省域智慧医疗协作平台解决方案
- 2025届高考物理大一轮复习课件 第十二章 第69课时 专题强化:电磁感应中的动力学和能量问题
- 《医疗废物管理》课件
- 钕铁硼材料倒角公差标准
- 2021新译林版新教材高中英语必修三全册单词默写(汉译英)
- 业务往来明细表
- 成品出货检验报告模板
- 网络营销7微博营销
- 苏科版物理八年级上册学期期末试卷(附答案)
- 插花学习通超星课后章节答案期末考试题库2023年
- 测绘技术和质量保证体系
- 手术室护理实践指南侧卧位的摆放
- 基坑支护及土方开挖工程监理实施细则
评论
0/150
提交评论