模擬PS2協議

2022-09-21 21:42:06 字數 1925 閱讀 7580

本來以為模擬ps2協議相當的麻煩,今天下了一本ps2協議手冊看了半天,原來讀鍵盤值相當簡單嘛,比模擬spi、i2c簡單多了呵呵。

下面介紹一下具體過程

1.明確接線關係,只需接4根線,vcc要+5v,3.3我測試過不能用,時鐘和資料線要用bidir雙向口線,fpga可以不用外接上拉電阻。

另外,usb鍵盤也可以用,只要用乙個轉接頭轉成ps2即可。

2.讀取基本的鍵盤資料,不需要fpga傳送任何資料,只需讀取鍵盤發回來的資料即可

如下面的時序圖,每次鍵盤傳送11個clock訊號,我們需要做的事情就是在時鐘的下降沿讀取資料

3.如何來取樣clk低電平?

這裡可以用乙個fifo來儲存資料,如下面的程式,當ps2_clk訊號處於下降沿時,ps2_clk_fallingedge值將被置高

reg [2:0] ps2_clkr;//用乙個fifo來取樣ps2_clk訊號;

always @(posedge clk)

ps2_clkr <= ;

wire ps2_clk_risingedge = (ps2_clkr[2:1]==2'b01); // now we can detect ps2_clk rising edges

wire ps2_clk_fallingedge = (ps2_clkr[2:1]==2'b10); // and falling edges

4.當檢測到第乙個低電平時,我們只需要連續讀取11個週期值就可以了,這裡用乙個變數i來控制

always @(posedge clk)

if(rst)

i <= 0;

else

begin

if(ps2_clk_fallingedge)

begin

data2[i] <= data[i];

data[i] <= ps2_data;

if(i<10) i <= i+1;

else i <= 0;

endend

最後來解釋下這11個資料的功能,如下表

5.如果想進一步區分鍵值,就需要查表了,如下表

基本按鍵,鍵盤會傳送「f0」+「鍵碼」

擴充套件按鍵,則傳送「e0」+「f0」+「鍵碼」

大家都來試一下吧,乙個下午就能搞定!

附程式,晶振頻率降至1mhz,用led輸出鍵值

module ps2(clk, rst, ps2_clk, ps2_data, data ,data2);

input clk, rst, ps2_clk , ps2_data;

output [10:0] data;

output [10:0] data2;

reg [3:0] i;

reg [10:0] data;//another fifo

reg [10:0] data2;

reg [2:0] ps2_clkr;//用乙個fifo來取樣ps2_clk訊號;

always @(posedge clk)

ps2_clkr <= ;

wire ps2_clk_risingedge = (ps2_clkr[2:1]==2'b01); // now we can detect ps2_clk rising edges

wire ps2_clk_fallingedge = (ps2_clkr[2:1]==2'b10); // and falling edges

always @(posedge clk)

if(rst)

i <= 0;

else

begin

if(ps2_clk_fallingedge)

begin

data2[i] <= data[i];

data[i] <= ps2_data;

if(i<10) i <= i+1;

else i <= 0;

endend

endmodule

ps2鍵盤協議

一.電氣特性 二.資料格式 表中,如果資料位中 的個數為偶數,校驗位就為 如果資料位中 的個數為奇數,校驗位就為 總之,資料位中 的個數加上校驗位中 的個數總為奇數,因此總進行奇校驗。ps2裝置的clock和data都是集電極開路的,平時都是高電平。當ps2裝置等待傳送資料時,它首先檢查clock是...

PS2介面協議和鍵盤掃瞄碼

ps2介面協議 1 ps 2介面標準的發展過程 隨著計算機工業的發展,作為計算機最常用輸入裝置的鍵盤也日新月異。1983年ibm推出了ibm pc xt鍵盤及其介面標準。該標準定義了83鍵,採用5腳din聯結器和簡單的序列協議。實際上,第一套鍵盤掃瞄碼集並沒有主機到鍵盤的命令。為此,1984年ibm...

計算機標準串列埠轉PS2口轉換模組介面協議

串列埠轉鍵盤口模組使用說明 使用 9600bps 0,1,n 我公司提供串列埠測試軟體 串列埠轉鍵盤口模組有兩種協議方式 1.全部鍵盤功能 有 的按鍵現還不能實現 串列埠發乙個鍵盤碼,ps2口執行乙個鍵盤功能 對應於功能鍵 或串列埠發乙個鍵盤碼,ps2 口顯示乙個鍵盤碼 對應於非功能鍵 請參見上面的...