DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1231|回复: 0
打印 上一主题 下一主题

[待整理] 基于P89C61x2/ISP1581的USB接口电路的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 15:48:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
主要芯片介绍

       本设计采用控制芯片P89C61x2和接口芯片ISP1581实现USB接口电路的设计。

       P89C61x2包含1024B RAM、64KB Flash存储器、32个I/O口、3个16位定位/计数器、6个中断源-4个中断优先级-嵌套的中断结构、1个增强型UART、片内振荡器和时钟电路。此外,器件的静态设计使其具有非常宽的频率范围,可选择1MHz~12MHz的晶体振荡器。具有两个软件可选的节电模式-空闲模式和掉电模式。

       USB接口芯片ISP1581是一种价格低、功能强的USB接口器件,符合USB2.0规范,并为基于微控制器或微处理器的系统提供了高速USB通信能力;具有7个IN端点,7个OUT端点和1个固定的控制IN/OUT端点;可以通过软件控制与USB总线的连接;内部集成了带PLL的12MHz晶体振荡器;可通过内部上电复位、低电压复位电路和软件复位。

系统硬件设计

       系统的连接框图如图1所示。

       ISP1581有两种工作模式:通用处理器工作模式和断开总线工作模式。本文的硬件设计中通过设置BUS-CONF=0实现断开总线的工作模式。AD[7:0]为8位的多路复用地址/数据,与单片机的P0口连接;DATA[15:0]为16位的数据总线。MODE0接高电平,表示读或写信号工作在8051类型;ALE与单片机的ALE相连,实现地址锁存;RPU为USB D+线的外部上拉电阻连接端,通过一个1.5kΩ电阻与Vcc(3.3v)相连;RREF连接外部偏置电阻,通过一个12.0kΩ电阻同地端相连,使高速收发器得到一个精确的镜电源。为了实现良好的EMC特性,所有的电源引脚均连接到由0.01μF和0.1μF电容并联后的网络中。

系统的固件设计

       单片机的固件是USB设备运行的核心。主要包括以下几个部分:

       Kerne1.c:循环扫描USB事件;启动设备和系统的工作;

       Isr.c:中断服务程序;

       Chap9.c.包含标准USB命令,用于在设备和主机之间建立一个基本连接;

       Vendor.c:包含厂商定义命令,处理厂商请求;

       Init.c:初始化单片机和ISP1581芯片。

       初始化程序主要初始化各种状态变量,包括单片机的初始化以及设置ISP1581寄存器。主要包括地址寄存器、模式寄存器、中断配置寄存器,中断使能寄存器以及端点寄存器等。

       USB设备采用控制传输完成枚举,从而判断出设备的状况。

       数据传输过程采用中断方式,单片机通过读取中断寄存器的状态判断中断源,并进入相应的中断处理程序。ISP1581主要有SETUP中断、总线挂起中断以及端点输入/输出中断等,控制端点设置64B的缓冲区,每次只能传输64B,传输的数据量由单片机控制。若传输的字节数大于64B,将先传输64B,然后判断剩下的字节数,同时确定是否为空包或短包。如果没有数据传送到单片机,将发送一个空包表明数据发送完毕。

       固件主要完成设备初始化、USB协议标准请求处理以及其它应用程序如数据交换功能。程序采用C51语言编写,使用Keil公司的uVision2编译器进行编译。

       固件的主循环流程见图2。

设备驱动程序和应用程序的设计

       USB设备驱动程序的开发,可采用Drivel Works和Microsoft公司的2000DDK,并以VC++6.0作为开发环境。为了方便用户开发USB接口,在DP-1581的开发包中提供了一个通用驱动程序,该程序可不加修改,直接使用。在本电路设计中,采用的是开发版自带的驱动程序。

结语

       本系统将原有的并口改进为USB接口,支持即插即用和热插拔.经实际试验验证,本系统性能稳定可靠,具有一定的实际应用价值。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-3 22:13 , 耗时 0.084905 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表