返回列表 发帖

[原创经验] w90x710系列PS/2主机控制接口

[原创经验] w90x710系列PS/2主机控制接口

1.1.
6 G5 T: p" {: o, y. C: ~mcuos.com
概要
W90P710 PS2主机控制接口是一个基于PS2协议的APB设备,它通过PS2接口可以和IBM键盘等其它设备相连。例如,当有按键被按下或者放开时,IBM键盘将相应扫描码传给主机控制器,然后键盘的BIOS根据扫描码可以判断是哪一个按键被操作了。键盘也可以从主机控制器接收命令,最通用的命令是状态指示命令(如,数码锁定、大小写字母锁定和滚动锁定指示灯)。嵌入式开发联盟8 |  A! z0 M2 \; I7 Y; Q

/ w+ x! I/ n+ K8 c; fPS2接口工作基于双向通讯协议。键盘可以给主机发送数据,同时主机也可以通过使用PS2时钟线和数据线给键盘发送数据。PS2时钟和数据线都是双向的集电极开路 I/O 线。主机传送在传输方向上有较高的优先级。当PS2数据线和时钟线都是高电位时(即线路空闲),键盘可以自由的传送数据,反之当时钟线位于低电位时,键盘将缓存所有的数据直到PS2时钟线被释放而转变为高电位。一个传送的数据,例如从键盘传给主机,由11比特位构成,依次是一个起始位(逻辑0),8个数据位(最低位在前),一个奇偶校验位(奇校验)和一个结束位(逻辑1)。每一位数据都在时钟产生下降沿时被读取。时钟由键盘产生,时钟信号的频率一般在20~30千赫兹之间。mcuos.com6 R" h, y+ F* F/ x+ p
mcuos.com& ]/ a/ l: o; Q: Q5 M
主机到键盘的传输协议由拉低PS2的数据线的电位开始。一般情况下,PS2时钟线至少保持位于低电位60us,然后键盘的数据线拉低,同时释放键盘的时钟线。此后,键盘的PS2时钟线开始产生时钟信号。当第一个下降沿产生后,主机开始在PS2数据线装载第1位数据(起始位),这个数据位将在下一个下降沿被读进键盘,这个过程将重复把一个字节8个数据位和1个奇偶校验位转载到PS2数据线。
  y: S/ \9 m) o4 q' Y" zmcuos.com mcuos.com0 B- H0 d' b: O- {1 ]
1.1.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 e1 s$ i- M1 V0 l, z; z9 u( q
键盘扫描码对应表

% y! O- E* M% k) L: N+ X" o! S9 i本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。嵌入式开发联盟9 }5 ^9 F3 B9 }1 U

8 E' i6 {- U  w  L- p8 Wmcuos.com4 j9 B" i: d0 s3 u

( P% [7 M3 w' a) h( B嵌入式开发联盟1.1.嵌入式开发联盟( a+ Q( @& m, L7 z- P( @/ L! [1 k
寄存器映射

Register嵌入式开发联盟" d% M7 G8 l# z/ @* J3 G% c
寄存器9 w' V- L! {0 y4 W2 m

Address

地址

R/W

/

Description

说明

Reset value

复位初始值

PS2CMD
+ G1 u; y* o0 `; f本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0xFFF8.90002 w- T( B. R5 k" F+ `

R/W

嵌入式开发联盟  P% u, k2 o3 o& G
PS2 Host Controller Command Register

! w* a  {9 N; Y5 a! kPS2主机控制命令寄存器
8 W- I& t  ^4 V- U8 s$ p* b: p( o

0x0000.0000

PS2STS
0 C) S% ?" W- x& m6 t  ^- 嵌入式底层驱动开发技术学习网站
0xFFF8.9004嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习7 e8 r) l4 n5 b* v% b! [* {: ]* g

R/W


4 E; w" B5 u+ [! x1 @嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习PS2 Host Controller Status Register
- 嵌入式底层驱动开发技术学习网站+ H+ R0 I: g0 H7 @+ a, Y1 [
PS2主机控制状态寄存器
! ^9 }$ K; D" R/ Y$ I- 嵌入式底层驱动开发技术学习网站

0x0000.0000

PS2SCANCODE
* h+ w# p; b+ {. f  G* r本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
0xFFF8.9008
$ D1 q( o1 \3 j( e. [" f  V8 _

RO


2 i+ s1 X: l9 r7 D& rPS2 Host Controller RX Scan Code Register

0 a1 Q) t% v; Q' S( g4 X1 LPS2主机控制扫描码接收寄存器
4 P- w5 `$ U: w$ w8 u* ~mcuos.com

0x0000.0000

PS2ASCII
0 f! h/ Y$ I9 M  z6 D+ }嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习
0xFFF8.900C7 z" `9 W( v; X4 V( W* G

RO

嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习5 {! @. U: Z9 }
PS2 Host Controller RX ASCII Code Register
mcuos.com8 m) T1 w0 Y: Q2 x6 E2 u
PS2主机控制ASCII码接收寄存器
* o7 _* ]8 w, L# G5 e2 v7 Q- 嵌入式底层驱动开发技术学习网站

0x0000.0000


7 r- w5 {6 J+ R7 U5 Z! ^' h: W1.2.mcuos.com! {: ~+ E" W8 x# A5 S" ]* B' x
程序设计注意点
1.2.1.
, b$ ~3 J7 e6 e9 z嵌入式开发联盟
往键盘发送命令
键盘命令:0xED 0x01(点亮滚动锁定指示灯)
* g) g' `0 j& \" k7 M, Q2 ^嵌入式开发联盟
" ?1 k( G1 w: j  Emcuos.com命令:mcuos.com" ~4 G* o6 `% `6 D
1.
+ m! O: l( N) I6 `嵌入式开发联盟
把命令0xED写入命令寄存器CMD(CMD[7:0]),并且把EnCMD位置位1使PS2写入有效。

- t1 [  H% w% C6 |2.
3 a- r! e) x% `mcuos.com
等待状态寄存器STSTX_IRQ 位被置起,完成往设备写入命令
- 嵌入式底层驱动开发技术学习网站! p* k3 K) z( ?; I
3.
. X2 L' u) [" r本站提供嵌入式底层驱动开发详尽的学习资料,技术帖子,面向嵌入式开发行业初学者,提供有针对性的技术培训服务。
等待状态寄存器STSRX_IRQ 位被置起,主机控制器接收到设备一个字节的确认信息
, O/ t4 i8 r6 d$ S5 a9 G; V& e
4.
  T; T5 U7 M" R( N- A) Z- 嵌入式底层驱动开发技术学习网站
重新执行1~3步完成第二个命令0x01的写入操作

2 i' d% i" I6 w- 嵌入式底层驱动开发技术学习网站
) s0 m+ h# B2 ?9 Y, K2 W: ~- 嵌入式底层驱动开发技术学习网站1.2.2.嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习3 p( @1 W% q8 N
接收键盘发送的扫描码
命令:
; p6 u  O$ p( F5 t2 ?* b1.- 嵌入式底层驱动开发技术学习网站4 k, S# ^! u$ T: c! @
等待状态寄存器STSRX_IRQ 位被置起
- 嵌入式底层驱动开发技术学习网站- N' x& q2 I5 P0 c) ]8 Z
2./ Y( P+ g! Z* ]/ j9 k! {% W- w
读取扫描码寄存器SCANCODERX_shift_keyRX_releaseRX_extend

0 a/ n4 a: Z% v( D- y3.
0 l( G5 y  k& R* h! m, u0 D, X5 j. n- 嵌入式底层驱动开发技术学习网站
读取扫描码寄存器SCANCODESCANCODE[7:0]
嵌入式开发联盟- V* t* U4 E/ p
4.mcuos.com! n$ o+ _2 g+ B  R8 X8 a# u0 F
读取ASCII码寄存器SCANCODEASCII[7:0].

( B# t3 R0 q& e嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习 嵌入式开发联盟5 v- H. p3 U1 G7 J' u0 Y' E
嵌入式开发联盟) ^, ~" q5 ]( k
附件: 您需要登录才可以下载或查看附件。没有帐号?本站只开放邀请码注册,QQ:82475491,索要邀请码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

回复 1# 的帖子

谢谢lz
) w( P+ {' A5 l; ?, G# Y6 {! s) P: [嵌入式, 嵌入式开发, Linux, arm, 驱动开发, 嵌入式学习  受用了

TOP

返回列表
网页右侧QQ悬浮滚动在线客服
网页右侧QQ悬浮滚动在线客服