基于 FPGA 实现的 PS2 协议逻辑分析仪 技术领域 本发明具体涉及集成电路以及嵌入式系统技术领域的一种基于 FPGA 实现的 PS2 协议逻辑分析仪。
背景技术 PS2 是一种每帧包含 11 位的串行协议。每一个帧作为发送单元。每一帧数据格式 =一位起始位 +8 位数据位 + 一位校验位 + 一位停止位, 如图 1 所示。PS2 协议有两种通讯 方式 : 主机到设备的通讯, 设备到主机的通讯。无论是哪种通讯, 时钟均由设备产生。不同 的是主机到设备的通讯过程中, 主机在时钟的下降沿发送数据, 设备在时钟上升沿接收数 据; 设备到主机的通讯过程中, 设备在时钟的上升沿发送数据, 主机在时钟的下降沿接收数 据。PS2 协议接口需要四个信号线, 即: 数据、 时钟、 VDD 和 GND。
相比于 USB 等复杂的协议, PS2 协议实现简单, 对物理链路层硬件以及上位机软件 的要求均不高。在低速通讯方面, PS2 完全可以轻松的实现下位机与上位机的通讯。因此, 目前 PS2 协议仍然有广泛的应用, 比如, 现有的大多数 PC 电脑均配置有 PS2 接口的鼠标以 及键盘, 而且这种现象还将长时间保持。
目前通常采用基于单片机开发的 PS2 协议分析设备对 PS2 数据进行解析, 但因一 般单片机的处理速度最快仅在 20MHZ 左右, 而且程序是由指令串行执行, 采样速度慢, 从而 造成 PS2 协议数据丢失等问题, 不便于开发调试。
发明内容 本发明的目的在于提出一种基于 FPGA 实现的 PS2 协议逻辑分析仪, 其可方便的实 现对 PS2 数据包进行提取分析, 加快基于 PS2 协议通讯的产品开发, 从而克服了现有技术中 的不足。
为实现上述发明目的, 本发明采用了如下技术方案 :
一种基于 FPGA 实现的 PS2 协议逻辑分析仪, 其特征在于 : 所述分析仪包括采样模 块, 发送模块以及时钟管理模块 ;
采样模块采样 PS2 数据, 且每成功完成一帧的解析, 即通知发送模块, 同时把解析 的数据存入缓冲寄存器 ;
发送模块在收到通知后, 从缓存寄存器中读入数据, 最终经 UART 协议发送给上位 机;
时钟管理模块对晶振源进行分频, 得到所需的 UART 时钟。
具体而言, 所述采样模块是对 PS2 的上行和下行通信数据进行截取而实现采样 的。
所述采样模块通过探测信号线以帧为间隔提取出每帧中包含的数据或者命令, 随 后以并口数据输出至传送模块, 并由通知信号通知传送模块。
所述探测信号线为两根, 其分别截取 PS2 的上行和下行通信数据。
所述传送模块采用查询的方式判断采样是否完成。
所述传送模块收到通知信号后, 即读入并口数据, 并立即采用 UART 协议传送数据 至上位机。
所述 UART 协议采用 115.2kbit/s 的通讯速率。
该逻辑分析仪的构建方法为 :
首先采用硬件描述语言 ( 如 verilog 等 ) 实现上述采样模块、 传送模块和时钟管 理模块, 经综合编译后, 生成电路结构网表, 下载至 FPGA 器件中即可实现。
本发明的采样模块通过探测 PS2DATA 和 PS2CLK 两根信号线, 以帧为间隔, 提取出 每帧中包含的数据或者命令, 随后以并口数据输出至传送模块, 并由通知信号通知传送模 块。采样 IP 由硬件描述语言 verilog 等实现。
本发明的传送模块采用查询的方式判断采样是否完成。一旦收到通知信号, 就读 入并口数据, 并立即采用 UART 协议传送数据至上位机。因发送每一帧 UART 格式的数据需 要的时间远小于 PS2 规定的标准帧间隔时间 ( 毫秒级 ), 因此在采样完一帧 PS2 数据后, 有 足够的时间完成对上位机的传送。
所述上位机的设置与上述 UART 设置一致, 即: 115200bit/s 波特率 ; 一位起始位, 8 位数据位, 无检验位, 一位停止位。 考虑到 UART 传输对时钟要求较高, 且发送方和接收方需要采用同一个频率的时 钟, 两个时钟匹配越精确, 接收误码率将降到最小。 本发明采用时钟管理模块对晶振源进行 分频, 得到所需的 UART 时钟。时钟管理模块亦由硬件描述语言 verilog 等实现, 且该时钟 管理模块的分频参数可调。
与现有技术相比, 本发明所具有的有益效果在于 :
(1) 可以方便的对 PS2 的上行和下行通信数据进行截获分析, 从而加快基于 PS2 协 议的产品开发 ;
(2) 相对与基于单片机开发的 PS2 协议分析设备, 可以更快速准确的实现 PS2 数据 的截获分析 ;
(3) 由于采样模块采用了 IP 模块化的结构, 接口层定义简单清晰, 因此可以非常 方便的挂接到更大的 FPGA 系统上去, 实现更复杂的分析。
附图说明 图 1 是标准 PS2 协议的一帧数据格式示意图 ;
图 2 是本发明具体实施方式中一种基于 FPGA 实现的 PS2 协议逻辑分析仪的结构 示意图 ;
图 3 是图 2 所示基于 FPGA 实现的 PS2 协议逻辑分析仪的应用框图 ;
图 4 是图 2 所示基于 FPGA 实现的 PS2 协议逻辑分析仪的电路图。
具体实施方式
以下结合附图及较佳实施例对本发明的技术方案作进一步的说明。
如图 2 ~ 3 所示, 该基于 FPGA 实现的 PS2 协议逻辑分析仪包括采样模块、 传送模 块和时钟管理模块, 其用于对 PS2 的上行和下行通信数据进行截获并发送至上位机分析,从而加快基于 PS2 协议通讯的产品开发。
考虑到标准 PS2 通讯速率是 12.5kbit/s, 最大为 33kbit/s, 最小为 10kbit/s, 而标 准鼠标和标准键盘通讯速率一般为 12.5kbit/s, 因此本实施例以 12.5kbit/s 作为采样参 考。
以下对本实施例基于 FPGA 实现的 PS2 协议逻辑分析仪的结构进行具体说明, 如图 4 所示, 该基于 FPGA 实现的 PS2 协议逻辑分析仪包括 :
(1) 采样模块 ps2catch
标准 PS2 通讯速率是 12.5kbit/s, 采样速率为 11.0592Mhz。
采样模块 ( 采样 IP) 由硬件描述语言 verilog 实现。采样模块通过探测 PS2DATA 和 PS2CLK 两根信号线, 以帧为间隔, 提取出每帧中包含的数据或者命令, 随后以 8 位并口数 据输出至传送模块, 并由信号 commdok 通知传送模块。
(2) 传送模块 UART_TXD
通讯接口采用 UART 协议, 传送模块 ( 通讯 IP) 由硬件描述语言 verilog 实现。传 送模块 : 采用查询的方式判断采样是否完成。一旦收到 commdok 信号, 就读入 8 位并口数据 catchdataout[7:0], 并立即启动 UART 传送数据至上位机。
UART 配置 : 115200bit/s 波特率, 一位起始位, 8 位数据位, 无检验位, 一位停止位。 该 UART 配置每发送一帧 UART 格式的数据需要的时间= 8.68us*10 = 86.8us, 这个时间远 小于 PS2 规定的标准帧间隔时间 ( 毫秒级 )。因此在采样完一帧 PS2 数据后, 有足够的时间 完成对上位机的传送。
上位机需跟该 UART 设置一致方可正常接收, 即: 115200bit/s 波特率 ; 一位起始 位, 8 位数据位, 无检验位, 一位停止位。
(3) 时钟管理模块 clock_N
UART 传输对时钟要求较高, 且发送方和接收方需要采用同一个频率的时钟, 两个 时钟匹配越精确, 接收误码率将降到最小。时钟管理模块对晶振源进行分频, 得到所需的 UART 时钟。时钟管理模块 ( 时钟 IP 核 ) 由硬件描述语言 verilog 实现, 且时钟管理模块的 分频参数可调。
本实施例中采用 11.0592Mhz 晶振, 经过 96 分频后得到 115200 的波特率。
本实施例的实现过程为 : 首先采用硬件描述语言 verilog 实现上述采样模块、 传 送模块和时钟管理模块, 经综合编译器 ( 如 ALTERA 公司推出的 QUARTUS) 综合编译后, 生成 电路结构网表, 下载至 FPGA 器件中即可实现, PCB 板级连接只需按照如图 4 和表 1 所述的 顶层接口连接即可, 另外在 TXD 端需要加入 MAX232 电平转接芯片。
表 1 本实施例顶层接口定义
引脚 PS2DATA PS2CLKI/O input input说明 PS2 数据输入端 PS2 时钟输入端5101937416 A CN 101937417说CLOCK RST_N TXD input input output明书系统时钟 系统复位信号 UART 传送输出信号4/4 页苏州市华芯微电子有限公司在调试一款基于 PS2 协议的 ASIC 时, 利用在 ALTERA 公司的 FPGA 器件 EP2C8Q208C8 上实现的 PS2 协议逻辑分析仪对 PS2 通讯端进行调试分析, 能够 100%准确的捕获到设备与 PC 机通信时的数据, 提供了准确的调试分析依据, 从而大 大加快了项目的研发速度。
上述实施例仅为说明本发明的技术构思及特点, 其目的在于让熟悉此项技术的人 士能够了解本发明的内容并据以实施, 并不能以此限制本发明的保护范围。凡根据本发明 精神实质所作的等效变化或修饰, 都应涵盖在本发明的保护范围之内。