使用 gpio 模拟 ps/2 接口对 Linux 实时性的要求

公司需要支持 ps/2 键盘, 但是 PXA310 上没有 ps/2 控制器。 硬件让研究一下 gpio 模拟的可能性。

仔细看了一下 ps/2 协议, 它主要是两根线, 一根 CLK, 一根 DATA. CLK 的频率大概是10k – 30k . 对应一个 CLK  周期为 30us – 100us

ps/2键盘 (或者鼠标)需要向主机发送信号时,它会先拉低时钟信号, 然后发出 1 个起始位,8 个数据位, 1 个奇偶校验,1个停止位。如下图:


这意味着如果我们使用 gpio 模拟 ps/2 接口, 那么在收到 CLK (由高到低)的中断时,必须在 1 个时钟周期内去访问 DATA. 否则数据就会丢失。

这意味着我们的操作系统必须保证30us-100us的实时性! 目前我们的 Linux 2.6 标准内核,不能满足这个要求!

你可能感兴趣的:(linux,url,behavior)