<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=PS%2F2</id>
	<title>PS/2 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=PS%2F2"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=PS/2&amp;action=history"/>
	<updated>2026-04-04T17:43:01Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=PS/2&amp;diff=353&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“{{Stub}}  PS/2是一种串行通信，通常用于用户输入设备 (键盘，鼠标，条形码扫描仪等)。 它涉及控制器 (例如PC兼容系统上的 “8042芯片”) 、本身通信的机械和电气细节以及一个相关设备。  == 历史 ==  最初 (1981) IBM为XT键盘使用了一种不同类型的串行通信。 较旧的接口不是双向的-设备可以向控制器发送数据，但控制器不能向设备发送数据。  后来 (1984) IB…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=PS/2&amp;diff=353&amp;oldid=prev"/>
		<updated>2022-01-29T07:41:08Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Stub}}  PS/2是一种串行通信，通常用于用户输入设备 (键盘，鼠标，条形码扫描仪等)。 它涉及控制器 (例如PC兼容系统上的 “8042芯片”) 、本身通信的机械和电气细节以及一个相关设备。  == 历史 ==  最初 (1981) IBM为XT键盘使用了一种不同类型的串行通信。 较旧的接口不是双向的-设备可以向控制器发送数据，但控制器不能向设备发送数据。  后来 (1984) IB…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
PS/2是一种串行通信，通常用于用户输入设备 (键盘，鼠标，条形码扫描仪等)。 它涉及控制器 (例如PC兼容系统上的 “8042芯片”) 、本身通信的机械和电气细节以及一个相关设备。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
&lt;br /&gt;
最初 (1981) IBM为XT键盘使用了一种不同类型的串行通信。 较旧的接口不是双向的-设备可以向控制器发送数据，但控制器不能向设备发送数据。&lt;br /&gt;
&lt;br /&gt;
后来 (1984) IBM用更新的用于AT键盘的双向接口替换了旧的串行接口。 它开始允许主机向设备发送命令。&lt;br /&gt;
&lt;br /&gt;
后来 (1987) IBM扩展了 “AT” 标准以创建 “PS/2” 标准。 PS/2标准在电气上与较旧的AT标准相同 (仅使用不同的插头/连接器)。&lt;br /&gt;
&lt;br /&gt;
最终PS/2被USB取代，但是它仍然相当普遍 (为了兼容性，某些系统具有使USB设备显示为PS/2设备的仿真层)。&lt;br /&gt;
&lt;br /&gt;
== 协议 ==&lt;br /&gt;
&lt;br /&gt;
下面是PS2连接器的示意图。&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:PS2_connector.png|frame|right]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
串行通信通常以10 khz至16.7 KHz的波特率运行。 设备发送到控制器的每个字节都作为包含11位的数据包传输。 “设备到主机” 数据包具有以下位:&lt;br /&gt;
* 1起始位 (始终为0)&lt;br /&gt;
* 8个数据位 (最低有效位优先)&lt;br /&gt;
* 1奇偶校验位 (奇数奇偶校验)&lt;br /&gt;
* 1个停止位 (始终为1个)&lt;br /&gt;
&lt;br /&gt;
控制器发送到设备的每个字节都作为包含12位的数据包传输。 “主机到设备” 数据包具有以下位:&lt;br /&gt;
* 1起始位 (始终为0)&lt;br /&gt;
* 8个数据位 (最低有效位优先)&lt;br /&gt;
* 1奇偶校验位 (奇数奇偶校验)&lt;br /&gt;
* 1个停止位 (始终为1个)&lt;br /&gt;
* 1个确认位&lt;br /&gt;
&lt;br /&gt;
== 驱动程序模型 ==&lt;br /&gt;
&lt;br /&gt;
PS/2端口控制器有各种类型; 包括 “bit banging” 通用IO，内置于系统芯片组的特殊支持和附加PCI卡。 还有各种类型的PS/2设备 (键盘，鼠标，触摸板，条形码扫描仪，磁卡/条纹读取器，指纹读取器等)。 &lt;br /&gt;
&lt;br /&gt;
显然，你不想在每个不同的PS/2控制器驱动程序中重复每种类型的PS/2设备的代码。 你想要将它们独立实现，以便PS/2设备的任何驱动程序都可以与任何PS/2控制器驱动程序对话 (并且可以将PS/2设备的代码移植到不同的体系结构而无需进行任何更改)。 这比较简单 - PS/2控制器驱动程序只需要能够发送和接收字节 (没有波特率控制或任何东西) 和一个简单的 “字节流” 方法就足够了。&lt;br /&gt;
&lt;br /&gt;
== 另见 ==&lt;br /&gt;
&lt;br /&gt;
=== 文章 ===&lt;br /&gt;
*[[&amp;quot;8042&amp;quot; PS/2 Controller]]&lt;br /&gt;
*[[PL050 PS/2 Controller|PL050 PS/2 Controller (ARM)]]&lt;br /&gt;
*[[PS/2 Keyboard]]&lt;br /&gt;
*[[PS/2 Mouse]]&lt;br /&gt;
&lt;br /&gt;
=== 外部链接 ===&lt;br /&gt;
*[http://www.versalent.biz/ps2facts.htm PS2 Facts and Info from Versalent]&lt;br /&gt;
*[http://www.computer-engineering.org/ps2protocol/ www.computer-engineering.org/ps2protocol]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>