一种usb2.0接口芯片的控制方法

文档序号:6623493阅读:318来源:国知局
一种usb2.0接口芯片的控制方法
【专利摘要】本发明提供一种USB2.0接口芯片的控制方法,采用CH378作为USB接口芯片,实现USB2.0协议;采用了FPGA现场可编程门阵列作为CH378的控制芯片,利用硬件描述语言VHDL设计状态机对CH378芯片进行控制,实现了CH378的功能,1)FPGA与CH378的接口及引脚功能;描述了CH378的引脚功能及与FPGA的接口,利用了FPGA的IO口和时钟引脚与CH378相连,便于FPGA对CH378进行控制;2)FPGA控制CH378的状态机设计方法:详细描述了FPGA的状态机工作流程,利用状态机实现了对CH378的控制,利用双端口RAM实现了数据的缓存,状态机是FPGA的核心,实现对CH378的控制。
【专利说明】-种USB2. 0接口芯片的控制方法

【技术领域】
[0001] 本发明涉及一种计算机应用【技术领域】,具体地说是一种USB2. 0接口芯片的控制 方法。

【背景技术】
[0002] USB,即通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和 通讯,是应用在PC领域的接口技术。CH378是南京沁恒电子公司的USB接口芯片,支持USB 设备方式和主机方式,内置了 USB通讯协议的基本固件和文件系统管理固件,支持USB2. 0 接口规范。
[0003] 状态机是数字时序逻辑中重要的设计内容,通过状态转移图设计手段可以将复杂 的控制时序图形化表示,分解为状态之间的转换关系,将问题简化。以硬件描述语言VHDL 完成的电路设计,经过综合与布局后,可以快速烧录至FPGA上进行测试,是现代1C设计验 证的技术主流。


【发明内容】

[0004] 本发明的目的是提供一种USB2. 0接口芯片的控制方法。采用CH378作为USB接 口芯片,利用硬件描述语言VHDL设计状态机对CH378进行控制,符合USB2. 0总线接口规 范,状态机可以移植到不同型号的FPGA中,使得设计灵活方便。本发明可以满足各种USB 设备的使用需求。
[0005] 本发明的目的是按以下方式实现的,采用CH378作为USB接口芯片,实现USB2. 0 协议;采用了 FPGA现场可编程门阵列作为CH378的控制芯片,利用硬件描述语言VHDL设 计状态机对CH378芯片进行控制,实现了 CH378的功能,1)FPGA与CH378的接口及引脚功 能;描述了 CH378的引脚功能及与FPGA的接口,利用了 FPGA的10 口和时钟引脚与CH378 相连,便于FPGA对CH378进行控制,其中: CH378芯片的引脚及与FPGA的接口,除elk引脚外,CH378的其余引脚与FPGA的10 口 连接,各引脚的功能如下: elk :输入信号,时钟引脚,与FPGA的时钟引脚相连,FPGA为CH378提供30MHz的时钟 频率; reset :输入信号,CH378的复位信号; D[31.. 0]:双向信号,8 bit数据总线; nWR :输入信号,低电平表不写入数据有效; nRD :输入信号,低电平表不读出数据有效; A0:输入信号,命令与数据的区分引脚,当AO = 1时FPGA对CH378写命令或读状态,当 A0 = 0时读写数据; nINT :输出信号,中断输出引脚,低电平有效; 2)FPGA控制CH378的状态机设计方法:详细描述了 FPGA的状态机工作流程,利用状态 机实现了对CH378的控制,利用双端口 RAM实现了数据的缓存,状态机是FPGA的核心,实现 对CH378的控制,由空闲状态IDLE、获取中断状态TX_C22、读取中断值状态RX_INT_S、释放 缓冲区状态TX_C23、写命令字状态TX_C29、读数据状态RX_DAT、写命令字状态TX_C2A、写数 据状态TX_DAT组成,控制步骤如下: (1) 上电后FPGA首先对CH378初始化,状态机处于IDLE状态,之后进入TX_C22状态; (2) 在TX_C22状态,FPGA向CH378写入命令字0x22,请求获得中断状态值,之后进入 RX_INT_S 状态; (3) 在RX_INT_S状态,状态机读取中断状态值,若为0x04表示端点0x02的接收器接收 到数据,之后进入TX_C29状态;若中断状态值不为0x04,说明未能接收到数据,状态机进入 TX_C23 状态; (4) 在TX_C23状态,状态机释放USB缓冲区; (5) 在了乂_029状态,状态机向〇1378写入命令字(^29和端点号(^02,使〇1378准备从 0x02端点缓冲区读取数据块,之后进入RX_DAT状态; (6) 在RX_DAT状态,状态机依次把从端点缓冲区读取的数据写入双端口 RAM,数据传输 完成后CH378释放缓冲区,之后进入TX_C2A状态; (7) 在了乂_024状态,状态机向〇1378写入命令字(^24和端点号(^82,使〇1378做好发 送数据的准备,之后进入TX_DAT状态; (8) 在TX_DAT状态,状态机读取双端口 RAM中的数据并写入端点0x82的发送缓冲区, 由CH378把数据发送到上位机; (9) 完成了数据的传输过程,状态机回到IDLE状态。
[0006] 所述的USB2. 0接口芯片的控制方法,在FPGA中为了缓存数据的需要,设置了一 双端口 RAM,上位机和FPGA对RAM进行独立的访问,使得设计更加灵活。
[0007] 所述的USB2. 0接口芯片的控制方法,对状态机各状态的编码采用了格雷码的方 式,能有效的防止毛刺的产生,使系统稳定。另外采用了 USB的批量端点进行数据的传输, 下传时数据由上位机传输到FPGA,端点号为0x02,数据传输最大支持512字节;上传时数据 由FPGA传输到上位机,端点号为0x82,支持的最大数据长度也是512字节,CH378完成数据 的下传后通过nINT引脚向FPGA发送中断。
[0008] 本发明的目的有益效果是: 在FPGA中为了缓存数据的需要,设置了一双端口 RAM,上位机和FPGA可以对RAM进行 独立的访问,使得设计更加灵活;对状态机各状态的编码采用了格雷码的方式,可以有效的 防止毛刺的产生,使系统稳定。另外采用了 USB的批量端点进行数据的传输,下传时数据由 上位机传输到FPGA,端点号为0x02,数据传输最大支持512字节;上传时数据由FPGA传输 到上位机,端点号为0x82,支持的最大数据长度也是512字节。CH378完成数据的下传后通 过nINT引脚向FPGA发送中断。

【专利附图】

【附图说明】
[0009] 图1是CH378芯片与FPGA的接口图; 图2是FPGA的状态机转移图。

【具体实施方式】
[0010] 参照说明书附图对本发明的USB2. 0接口芯片的控制方法作以下详细地说明。
[0011] FPGA控制CH378状态机的方法:详细描述了 FPGA状态机工作流程,利用状态机实 现了对CH378的控制,利用双端口 RAM实现了数据的缓存,状态机是FPGA的核心,实现对 CH378的控制,由空闲状态IDLE、获取中断状态TX_C22、读取中断值状态RX_INT_S、释放缓 冲区状态TX_C23、写命令字状态TX_C29、读数据状态RX_DAT、写命令字状态TX_C2A、写数据 状态TX_DAT组成,控制步骤如下: 状态机是FPGA的核心,实现对CH378的控制。该状态机的状态转移图如附图2所示,由 空闲状态IDLE、获取中断状态TX_C22、读取中断值状态RX_INT_S、释放缓冲区状态TX_C23、 写命令字状态TX_C29、读数据状态RX_DAT、写命令字状态TX_C2A、写数据状态TX_DAT组成。
[0012] (1)、上电后FPGA首先对CH378初始化,状态机处于IDLE状态,之后进入TX_C22 状态; (2) 、在了乂_022状态,??6八向〇1378写入命令字(^22,请求获得中断状态值,之后进入 RX_INT_S 状态; (3) 、在RX_INT_S状态,状态机读取中断状态值,若为0x04表示端点0x02的接收器接 收到数据,之后进入TX_C29状态;若中断状态值不为0x04,说明未能接收到数据,状态机进 入TX_C23状态; (4) 、在TX_C23状态,状态机释放USB缓冲区; (5) 、在了乂_029状态,状态机向〇1378写入命令字(^29和端点号(^02,使〇1378准备从 0x02端点缓冲区读取数据块,之后进入RX_DAT状态; (6) 、在RX_DAT状态,状态机依次把从端点缓冲区读取的数据写入双端口 RAM,数据传 输完成后CH378释放缓冲区,之后进入TX_C2A状态; (7) 、在了乂_024状态,状态机向〇1378写入命令字(^24和端点号(^82,使〇1378做好发 送数据的准备,之后进入TX_DAT状态; (8) 、在TX_DAT状态,状态机读取双端口 RAM中的数据并写入端点0x82的发送缓冲区, 由CH378把数据发送到上位机; 至此完成了数据的传输过程,状态机回到IDLE状态。
[0013] 除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【权利要求】
1. 一种USB2. 0接口芯片的控制方法,其特征在于采用CH378作为USB接口芯片,实 现USB2. 0协议;采用了 FPGA现场可编程门阵列作为CH378的控制芯片,利用硬件描述语 言VHDL设计状态机对CH378芯片进行控制,实现了 CH378的功能,1) FPGA与CH378的接 口及引脚功能;描述了 CH378的引脚功能及与FPGA的接口,利用了 FPGA的10 口和时钟引 脚与CH378相连,便于FPGA对CH378进行控制,其中: CH378芯片的引脚及与FPGA的接口,除elk引脚外,CH378的其余引脚与FPGA的10 口 连接,各引脚的功能如下: elk :输入信号,时钟引脚,与FPGA的时钟引脚相连,FPGA为CH378提供30MHz的时钟 频率; reset :输入信号,CH378的复位信号; D[31.. 0]:双向信号,8 bit数据总线; nWR :输入信号,低电平表不写入数据有效; nRD :输入信号,低电平表不读出数据有效; A0:输入信号,命令与数据的区分引脚,当AO = 1时FPGA对CH378写命令或读状态,当 A0 = 0时读写数据; nINT :输出信号,中断输出引脚,低电平有效; 2)FPGA控制CH378的状态机设计方法:详细描述了 FPGA的状态机工作流程,利用状态 机实现了对CH378的控制,利用双端口 RAM实现了数据的缓存,状态机是FPGA的核心,实现 对CH378的控制,由空闲状态IDLE、获取中断状态TX_C22、读取中断值状态RX_INT_S、释放 缓冲区状态TX_C23、写命令字状态TX_C29、读数据状态RX_DAT、写命令字状态TX_C2A、写数 据状态TX_DAT组成,控制步骤如下: (1) 上电后FPGA首先对CH378初始化,状态机处于IDLE状态,之后进入TX_C22状态; (2) 在TX_C22状态,FPGA向CH378写入命令字0x22,请求获得中断状态值,之后进入 RX_INT_S 状态; (3) 在RX_INT_S状态,状态机读取中断状态值,若为0x04表示端点0x02的接收器接收 到数据,之后进入TX_C29状态;若中断状态值不为0x04,说明未能接收到数据,状态机进入 TX_C23 状态; (4) 在TX_C23状态,状态机释放USB缓冲区; (5) 在了乂_029状态,状态机向〇1378写入命令字(^29和端点号(^02,使〇1378准备从 0x02端点缓冲区读取数据块,之后进入RX_DAT状态; (6) 在RX_DAT状态,状态机依次把从端点缓冲区读取的数据写入双端口 RAM,数据传输 完成后CH378释放缓冲区,之后进入TX_C2A状态; (7) 在了乂_024状态,状态机向〇1378写入命令字(^24和端点号(^82,使〇1378做好发 送数据的准备,之后进入TX_DAT状态; (8) 在TX_DAT状态,状态机读取双端口 RAM中的数据并写入端点0x82的发送缓冲区, 由CH378把数据发送到上位机; (9) 完成了数据的传输过程,状态机回到IDLE状态。
2. 根据权利要求1所述的USB2. 0接口芯片的控制方法,其特征在于在FPGA中为了缓 存数据的需要,设置了一双端口 RAM,上位机和FPGA对RAM进行独立的访问,使得设计更加 灵活。
3.根据权利要求1所述的USB2. 0接口芯片的控制方法,其特征在于对状态机各状态 的编码采用了格雷码的方式,能有效的防止毛刺的产生,使系统稳定,另外采用了 USB的批 量端点进行数据的传输,下传时数据由上位机传输到FPGA,端点号为0x02,数据传输最大 支持512字节;上传时数据由FPGA传输到上位机,端点号为0x82,支持的最大数据长度也 是512字节,CH378完成数据的下传后通过nINT引脚向FPGA发送中断。
【文档编号】G06F13/42GK104156336SQ201410400546
【公开日】2014年11月19日 申请日期:2014年8月14日 优先权日:2014年8月14日
【发明者】苏振宇 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1