hardware-notes 原文存档

关于ps2驱动时序图的理解

· 更新于

ps2时序图

关于接线,

1-DATA(DI):信号流向从手柄到主机。此信号是一个8 bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高    到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。)

2-CMD(DO):信号流向从主机到手柄。此信号和DATA相对,同样是一个8 bit的串行数据,同步传送于时钟下降沿。

程序:

我们可以使用SPI,也可以自己写驱动,软件模拟波形。

`void PS2_Cmd(u8 CMD) {  volatile u16 ref=0x01;  Data[1] = 0;  for(ref=0x01;ref<0x0100;ref<<=1)  {   if(ref&CMD)   {    DO_H;                   //输出一位控制位   }   else DO_L;   CLK_H;                        //时钟拉高   DELAY_TIME;   CLK_L;   DELAY_TIME;   CLK_H;                        //手动拉出一个下降沿使DO和DI得以同时传送   if(DI)    Data[1] = ref|Data[1];      //运用或运算按位存入Data[1]的8位  }  delay_us(16); }`