编译码电路鼠标
⑴ 此图是无线鼠标的接收译码电路 图片右边的P1 8Pin是什么接口啊电脑上有这个接口吗
应该有
⑵ 鼠标的工作原理是什么
工作原理如下:
1、光电鼠标内部有一个发光二极管,通过它发出的光线,可以照亮光电鼠标底部表面(这是鼠标底部总会发光的原因)。
⑶ 自制无线鼠标
这个是不可能的,原因有以下几点
1:usb总线是一条半双工总线(双向),而编译码电路MC145026/MC145027是一种单向的芯片。射频发射/接收模块TDA1808rtfDA188没听说过,估计也是单向的。
2:作为一个usb driver,必须提供自己是什么设备(由上拉电阻决定),电路中连这个都没有。
3:芯片的解码速度绝对跟不上。
4:usb总线使用的是3.0-3.6V变化的差分信号。芯片使用的是0-5V的TTL电平信号,电气标准不同。
还有你给的分数太少了。
最后我想说的是51电子所给的电路很多都是错的。
⑷ pcm 编译码芯片中的用到哪些滤波器这些滤波器的带宽设置是如何考虑 的
1. 点到点PCM多路电话通信原理
脉冲编码调制(PCM)技术与增量调制(ΔM)技术已经在数字通信系统中得到广泛应用。当信道噪声比较小时一般用PCM,否则一般用ΔM。目前速率在155MB以下的准同步数字系列(PDH)中,国际上存在A解和μ律两种PCM编译码标准系列,在155MB以上的同步数字系列(SDH)中,将这两个系列统一起来,在同一个等级上两个系列的码速率相同。而ΔM在国际上无统一标准,但它在通信环境比较恶劣时显示了巨大的优越性。
点到点PCM多路电话通信原理可用图9-1表示。对于基带通信系统,广义信道包括传输媒质、收滤波器、发滤波器等。对于频带系统,广义信道包括传输媒质、调制器、解调器、发滤波器、收滤波器等。
本实验模块可以传输两路话音信号。采用TP3057编译器,它包括了图9-1中的收、发低通滤波器及PCM编译码器。编码器输入信号可以是本实验模块内部产生的正弦信号,也可以是外部信号源的正弦信号或电话信号。本实验模块中不含电话机和混合电路,广义信道是理想的,即将复接器输出的PCM信号直接送给分接器。
2. PCM编译码模块原理
本模块的原理方框图图9-2所示,电原理图如图9-3所示(见附录),模块内部使用+5V和-5V电压,其中-5V电压由-12V电源经7905变换得到。
图9-2 PCM编译码原理方框图
该模块上有以下测试点和输入点:
• BS PCM基群时钟信号(位同步信号)测试点
• SL0 PCM基群第0个时隙同步信号
• SLA 信号A的抽样信号及时隙同步信号测试点
• SLB 信号B的抽样信号及时隙同步信号测试点
• SRB 信号B译码输出信号测试点
• STA 输入到编码器A的信号测试点
• SRA 信号A译码输出信号测试点
• STB 输入到编码器B的信号测试点
• PCM PCM基群信号测试点
• PCM-A 信号A编码结果测试点
• PCM-B 信号B编码结果测试点
• STA-IN 外部音频信号A输入点
• STB-IN 外部音频信号B输入点
本模块上有三个开关K5、K6和K8,K5、K6用来选择两个编码器的输入信号,开关手柄处于左边(STA-IN、STB-IN)时选择外部信号、处于右边(STA-S、STB-S)时选择模块内部音频正弦信号。K8用来选择SLB信号为时隙同步信号SL1、SL2、SL5、SL7中的某一个。
图9-2各单元与电路板上元器件之间的对应关系如下:
•晶振 U75:非门74LS04;CRY1:4096KHz晶体
•分频器1 U78:A:U78:D:触发器74LS74;U79:计数器74LS193
•分频器2 U80:计数器74LS193;U78:B:U78:D:触发器74LS74
•抽样信号产生器 U81:单稳74LS123;U76:移位寄存器74LS164
•PCM编译码器A U82:PCM编译码集成电路TP3057(CD22357)
•PCM编译码器B U83:PCM编译码集成电路TP3057(CD22357)
•帧同步信号产生器 U77:8位数据产生器74HC151;U86:A:与门7408
•正弦信号源A U87:运放UA741
•正弦信号源B U88:运放UA741
•复接器 U85:或门74LS32
晶振、分频器1、分频器2及抽样信号(时隙同步信号)产生器构成一个定时器,为两个PCM编译码器提供2.048MHz的时钟信号和8KHz的时隙同步信号。在实际通信系统中,译码器的时钟信号(即位同步信号)及时隙同步信号(即帧同步信号)应从接收到的数据流中提取,方法如实验五及实验六所述。此处将同步器产生的时钟信号及时隙同步信号直接送给译码器。
由于时钟频率为2.048MHz,抽样信号频率为8KHz,故PCM-A及PCM-B的码速率都是2.048MB,一帧中有32个时隙,其中1个时隙为PCM编码数据,另外31个时隙都是空时隙。
PCM信号码速率也是2.048MB,一帧中的32个时隙中有29个是空时隙,第0时隙为帧同步码(×1110010)时隙,第2时隙为信号A的时隙,第1(或第5、或第7 —由开关K8控制)时隙为信号B的时隙。
本实验产生的PCM信号类似于PCM基群信号,但第16个时隙没有信令信号,第0时隙中的信号与PCM基群的第0时隙的信号也不完全相同。
由于两个PCM编译码器用同一个时钟信号,因而可以对它们进行同步复接(即不需要进行码速调整)。又由于两个编码器输出数据处于不同时隙,故可对PCM-A和PCM-B进行线或。本模块中用或门74LS32对PCM-A、PCM-B及帧同步信号进行复接。在译码之前,不需要对PCM进行分接处理,译码器的时隙同步信号实际上起到了对信号分路的作用。
3. TP3057简介
本模块的核心器件是A律PCM编译码集成电路TP3057,它是CMOS工艺制造的专用大规模集成电路,片内带有输出输入话路滤波器,其引脚及内部框图如图9-4、图9-5所示。引脚功能如下:
图9-4 TP3057引脚图
(1) V一 接-5V电源。
(2) GND 接地。
(3) VFRO 接收部分滤波器模拟信号输出端。
(4) V+ 接+5V电源。
(5) FSR 接收部分帧同信号输入端,此信号为8KHz脉冲序列。
(6) DR 接收部分PCM码流输入端。
(7) BCLKR/CLKSEL 接收部分位时钟(同步)信号输入端,此信号将PCM码流在FSR上升沿后逐位移入DR端。位时钟可以为64KHz到2.048MHz的任意频率,或者输入逻辑“1”或“0”电平器以选择1.536MHz、1.544MHz或2.048MHz用作同步模式的主时钟,此时发时钟信号BCLKX同时作为发时钟和收时钟。
(8) MCLKR/PDN 接收部分主时钟信号输入端,此信号频率必须为1.536MHz、1.544MHz或2.048MHz。可以和MCLKX异步,但是同步工作时可达到最佳状态。当此端接低电平时,所有的内部定时信号都选择MCLKX信号,当此端接高电平时,器件处于省电状态。
(9) MCLKX 发送部分主时钟信号输入端,此信号频率必须为1.536MHz、1.544MHz或2.048MHz。可以和MCLKR异步,但是同步工作时可达到最佳状态。
(10) BCLKX 发送部分位时钟输入端,此信号将PCM码流在FSX信号上升沿后逐位移出DX端,频率可以为64KHz到2.04MHz的任意频率,但必须与MCLKX同步。
图9-5 TP3057内部方框图
(11) DX 发送部分PCM码流三态门输出端。
(12) FSX 发送部分帧同步信号输入端,此信号为8KHz脉冲序列。
(13) TSX 漏极开路输出端,在编码时隙输出低电平。
(14) GSX 发送部分增益调整信号输入端。
(15) VFXi- 发送部分放大器反向输入端。
(16) VFXi+ 发送部分放大器正向输入端。
TP3057由发送和接收两部分组成,其功能简述如下。
发送部分:
包括可调增益放大器、抗混淆滤波器、低通滤波器、高通滤波器、压缩A/D转换器。抗混淆滤波器对采样频率提供30dB以上的衰减从而避免了任何片外滤波器的加入。低通滤波器是5阶的、时钟频率为128MHz。高通滤波器是3阶的、时钟频率为32KHz。高通滤波器的输出信号送给阶梯波产生器(采样频率为8KHz)。阶梯波产生器、逐次逼近寄存器(S•A•R)、比较器以及符号比特提取单元等4个部分共同组成一个压缩式A/D转换器。S•A•R输出的并行码经并/串转换后成PCM信号。参考信号源提供各种精确的基准电压,允许编码输入电压最大幅度为5VP-P。
发帧同步信号FSX为采样信号。每个采样脉冲都使编码器进行两项工作:在8比特位同步信号BCLKX的作用下,将采样值进行8位编码并存入逐次逼近寄存器;将前一采样值的编码结果通过输出端DX输出。在8比特位同步信号以后,DX端处于高阻状态。
接收部分:
包括扩张D/A转换器和低通滤波器。低通滤波器符合AT&T D3/D4标准和CCITT建议。D/A转换器由串/并变换、D/A寄存器组成、D/A阶梯波形成等部分构成。在收帧同步脉冲FSR上升沿及其之后的8个位同步脉冲BCLKR作用下,8比特PCM数据进入接收数据寄存器(即D/A寄存器),D/A阶梯波单元对8比特PCM数据进行D/A变换并保持变换后的信号形成阶梯波信号。此信号被送到时钟频率为128KHz的开关电容低通滤波器,此低通滤波器对阶梯波进行平滑滤波并对孔径失真(sinx)/x进行补尝。
在通信工程中,主要用动态范围和频率特性来说明PCM编译码器的性能。
动态范围的定义是译码器输出信噪比大于25dB时允许编码器输入信号幅度的变化范围。PCM编译码器的动态范围应大于图9-6所示的CCITT建议框架(样板值)。
当编码器输入信号幅度超过其动态范围时,出现过载噪声,故编码输入信号幅度过大时量化信噪比急剧下降。TP3057编译码系统不过载输入信号的最大幅度为5VP-P。
由于采用对数压扩技术,PCM编译码系统可以改善小信号的量化信噪比,TP3057采用A律13折线对信号进行压扩。当信号处于某一段落时,量化噪声不变(因在此段落内对信号进行均匀量化),因此在同一段落内量化信噪比随信号幅度减小而下降。13折线压扩特性曲线将正负信号各分为8段,第1段信号最小,第8段信号最大。当信号处于第一、二段时,量化噪声不随信号幅度变化,因此当信号太小时,量化信噪比会小于25dB,这就是动态范围的下限。TP3057编译码系统动态范围内的输入信号最小幅度约为0.025Vp-p。
常用1KHz的正弦信号作为输入信号来测量PCM编译码器的动态范围。
图9-6 PCM编译码系统动态范围样板值
语音信号的抽样信号频率为8KHz,为了不发生频谱混叠,常将语音信号经截止频率为3.4KHz的低通滤波器处理后再进行A/D处理。语音信号的最低频率一般为300Hz。TP3057编码器的低通滤波器和高通滤波器决定了编译码系统的频率特性,当输入信号频率超过这两个滤波器的频率范围时,译码输出信号幅度迅速下降。这就是PCM编译码系统频率特性的含义。
四、实验步骤
1. 熟悉PCM编译码单元工作原理,开关K9接通8KHz(置为1000状态),开关K8置为SL1(或SL5、SL7),开关K5、K6分别置于STA-S、STB-S端,接通实验箱电源。
2. 用示波器观察STA、STB,调节电位器R19(对应STA)、R20(对应STB),使正弦信号STA、STB波形不失真(峰峰值小于5V)。
3. 用示波器观察PCM编码输出信号。
示波器CH1接SL0,(调整示波器扫描周期以显示至少两个SL0脉冲,从而可以观察完整的一帧信号)CH2分别接SLA、PCM-A、SLB、PCM-B以及PCM,观察编码后的数据所处时隙位置与时隙同步信号的关系以及PCM信号的帧结构(注意:本实验的帧结构中有29个时隙是空时隙,SL0、SLA及SLB的脉冲宽度等于一个时隙宽度)。
开关K8分别接通SL1、SL2、SL5、SL7,观察PCM基群帧结构的变化情况。
4. 用示波器观察PCM译码输出信号
示波器的CH1接STA,CH2接SRA,观察这两个信号波形是否相同(有相位差)。
5. 用示波器定性观察PCM编译码器的动态范围。
开关K5置于STA-IN端,将低失真低频信号发生器输出的1KHz正弦信号从STA-IN输入到TP3057(U82)编码器。示波器的CH1接STA(编码输入),CH2接SRA(译码输出)。将信号幅度分别调至大于5VP-P、等于5VP-P,观察过载和满载时的译码输出波形。再将信号幅度分别衰减10dB、20dB、30dB、40dB、45dB、50dB,观察译码输出波形(当衰减45dB以上时,译码输出信号波形上叠加有较明显的噪声)。
也可以用本模块上的正弦信号源来观察PCM编译码系统的过载噪声(只要将STA-S或STB-S信号幅度调至5VP-P以上即可),但必须用专门的信号源才能较方便地观察到动态范围。
⑸ 键盘和鼠标的工作原理
太复杂了额~~~~~
原理:鼠标器按其工作原理可分为机械式和光电式两种,最常见的是机械式鼠标器。现在的机械鼠标器实际上是光机鼠标器,即将滚轮的机械转动转换成光信号,再变为电信号。下面以这种鼠标器为例说明其工作原理。
在机械式鼠标器底部有一个露出一部分的塑胶小球,当鼠标器在操作桌面上移动时,小球随之转动,在鼠标器内部装有三个滚轴与小球接触,其中有两个分别是X轴方向和Y轴方向滚轴,用来分别测量X轴方向和Y轴方向的移动量,另一个是空轴,仅起支撑作用。拖动鼠标器时,由于小球带动三个滚轴转动,X轴方向和Y轴方向滚轴又各带动一个转轴(称为译码轮)转动。译码轮的两侧分别装有红外发光二极管和光敏传感器,组成光电耦合器。光敏传感器内部沿垂直方向排列有两个光敏晶体管A和B。由于译码轮有间隙,故当译码轮转动时,红外发光二极管发出的红外线时而照在光敏传感器上,时而被阻断,从而使光敏传感器输出脉冲信号。光敏晶体管A和B被安放的位置使得其光照和阻断的时间有差异,从而产生的脉冲A和脉冲B有一定的相位差,利用这种方法,就能测出鼠标器的拖动方向。也就是说,脉冲A比脉冲B的相位提前时,表示一个移动方向;反之,脉冲B比脉冲A的相位提前时,表示另一个移动方向。同时,脉冲信号周期也能反映出移动速度。检测到的X轴方向和Y轴方向移动的合成即代表了鼠标器的移动方向。将上述电信号重新编码后形成串行信号,再通过串行口COM1或COM2输入计算机,计算机即可判断鼠标器的移动方向。由以上的叙述可以得出结论:如果给X轴方向和Y轴方向光敏传感器的输出端送入两组脉冲信号,控制每一组脉冲的相位差即能达到与拖动鼠标器相同的作用。
无线鼠标实现原理
DRF(Digital radio frequency,数字无线电频率)技术能够对短距离通讯提供充足的带宽,非常适合鼠标和键盘这样的外围设备使用,其原理非常简单,鼠标部分工作与传统鼠标相同,再用无线发射器把鼠标在X或Y轴上的移动,按键按下或抬起的信息转换成无线信号并发送出去,无线接收器收到信号后经过解码传递给主机,驱动程序告诉操作系统鼠标的动作,该把鼠标指针移向哪个方向或是执行何种指令。
采用高频无线电(射频)技术,只要在限定距离以内,就可以在任何位置使用,几乎不受障碍物的影响。一般传输的距离达10~20米,已经足够用户使用。
无线电的最大特点是可以进行360度全方位无线射频遥控,而且耗电量较低,具有触发工作待机休眠。无线设备的接受端已经内置接收器,发射器装在主机的设备口上,均不会影响产品外观。
无线电接收器本身所具有的接口是USB或PS2的,可以从计算机的PS/2接口取电,不需要另加电池。它具有双或多波段,如果有多个无线设备,均可以通过这一个接收器进行管理,键盘工作频率一般占用通道1(如:27.185M和27.035M),鼠标工作频率占用通道2(如:27.085M和27.135M),工作时鼠标和键盘或多个鼠标之间干扰性较低,而且不会影响无线电话等数字无线设备。
无线鼠标具有节能模式,采用低功耗芯片之余,还有多重省电措施,在运行模式下LED闪烁速度是1500次/s,而在最省电的模式下闪烁速度只有2次/s,移动鼠标或是按下鼠标按键,鼠标再迅速恢复到正常模式。此外,有的鼠标支持手动唤醒节能技术,在鼠标的两侧装配有导电橡胶,通过鼠标上的触摸开关来随意控制电源,当用户的手离开鼠标2秒钟后,鼠标就马上进入睡眠状态,用户需要使用鼠标时,只要手一触到导电橡胶,鼠标立即被激活,效率比多重节能模式更高。以上种种方式,都延长了电池的使用寿命,接近一般无线滚球鼠标的水平,约为三至六个月。当然,其耗电量再小也小不过传统鼠标。
键盘的工作原理
键盘是计算机中使用最普遍的输入设备,它一般由按键、导电塑胶、编码器以及接口电路等组成。
在键盘上通常有上百个按键,每个按键负责一个功能,当用户按下其中一个时,键盘中的编码器能够迅速将此按键所对应的编码通过接口电路输送到计算机的键盘缓冲器中,由CPU进行识别处理。通俗地说也就是当用户按下某个按键时,它会通过导电塑胶将线路板上的这个按键排线接通产生信号,产生了的信号会迅速通过键盘接口传送到CPU中
很复杂吧......
⑹ 简易编译码电路怎么实现编码和译码的
编码和译码电路需要数字逻辑运算,常见的逻辑运算是:与门、或门、非门,只要你设计好输入和输出,译码和编码就可以用逻辑运算实现,
⑺ 鼠标、键盘工作原理
鼠标工作原理
鼠标按其工作原理的不同可以分为机械鼠标和光电鼠标。机械鼠标主要由滚球、辊柱和光栅信号传感器组成。当你拖动鼠标时,带动滚球转动,滚球又带动辊柱转动,装在辊柱端部的光栅信号传感器产生的光电脉冲信号反映出鼠标器在垂直和水平方向的位移变化,再通过电脑程序的处理和转换来控制屏幕上光标箭头的移动。光电鼠标器是通过检测鼠标器的位移,将位移信号转换为电脉冲信号,再通过程序的处理和转换来控制屏幕上的鼠标箭头的移动。光电鼠标用光电传感器代替了滚球。这类传感器需要特制的、带有条纹或点状图案的垫板配合使用。
1.移动鼠标带动滚球。
2.X方向和Y方转杆传递鼠标移动。
3.光学刻度盘。
4.电晶体发射红外线可穿过刻度盘的小孔。
5.光学感测器接收红外线并转换为平面移动速度。
种类介绍
简介
鼠标按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。
机械鼠标
机械鼠标主要由滚球、辊柱和光栅信号传感器组成。当你拖动鼠标时,带动滚球转动,滚球又带动辊柱转动,装在辊柱端部的光栅信号传感器产生的光电脉冲信号反映出鼠标器在垂直和水平方向的位移变化,再通过电脑程序的处理和转换来控制屏幕上光标箭头的移动。
光机式鼠标
顾名思义,光机式鼠标器是一种光电和机械相结合的鼠标。它在机械鼠标的基础上,将磨损最厉害的接触式电刷和译码轮改为非接触式的LED对射光路元件。当小球滚动时,X、Y方向的滚轴带动码盘旋转。安装在码盘两侧有两组发光二极管和光敏三极管,LED发出的光束有时照射到光敏三极管上,有时则被阻断,从而产生两级组相位相差90°的脉冲序列。脉冲的个数代表鼠标的位移量,而相位表示鼠标运动的方向。由于采用了非接触部件,降低了磨损率,从而大大提高了鼠标的寿命并使鼠标的精度有所增加。光机鼠标的外形与机械鼠标没有区别,不打开鼠标的外壳很难分辨。
光电鼠标
光电鼠标器是通过检测鼠标器的位移,将位移信号转换为电脉冲信号,再通过程序的处理和转换来控制屏幕上的光标箭头的移动。光电鼠标用光电传感器代替了滚球。这类传感器需要特制的、带有条纹或点状图案的垫板配合使用。
光学鼠标
光学鼠标器是微软公司设计的一款高级鼠标。它采用NTELLIEYE技术,在鼠标底部的小洞里有一个小型感光头,面对感光头的是一个发射红外线的发光管,这个发光管每秒钟向外发射1500次,然后感光头就将这1500次的反射回馈给鼠标的定位系统,以此来实现准确的定位。所以,这种鼠标可在任何地方无限制地移动。
http://ke..com/view/2199.htm鼠标的网络
键盘
(一。)键盘的种类很多,一般可分为触点式和无触点式两大类前者借助于金属把两个触点接通或断开以输入信号,后者借助于霍尔效应开关(利用磁场变化)和电容开关(利用电流和电压变化)产生输入信号。
( 二。)从编码的功能上,键盘又可以分成全编码键盘和非编码键盘两种.
全编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由全编码电路产生一个唯一对应的编码信息(如ASCII码)。非编码键盘是由软件完成键盘识别功能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序转换成相应的编码信息。非编码键盘的速度较低,但结构简单的,并且通过软件能为某些键的重定义提供很大的方便。
http://ke..com/view/7402.htm?func=retitle键盘的网络
你可以在网络搜索鼠标、键盘,在网络里看完整的。
希望对你有所帮助
⑻ 有线鼠标改无线鼠标为什么要编译码啊
原理使触点导通或断开。在实际应用中机械开头的结构形式很多,最常用的是交叉接触式。它的优点是结实耐用, 缺点是不防水。敲击比较费力,打字速度快时容易漏字。不过现在比较好的机械键盘都增加了Click功能, click功能实际上就是从机械结构上进行了改进,加大了缓存,防止快速打字时漏掉字符。它的使用寿命5000万到一亿次左右,普通用户10年大约键盘敲击20万次左右。所以一款好的机械键盘够用一辈子了。
塑料薄膜式键盘
塑料薄膜式键盘内有四层,塑料薄膜一层有凸起的导电橡胶,当中一层为隔离层,上下两层有触点。通过按键使橡胶凸起按下,使其上下两层触点接触,输出编码。这种键盘无机械磨损,可靠性较高,目前在市场占相当大的比重,不过很多JS也将这种成本相对较低的键盘当成电容式键盘。它最大的特点就是低价格, 低噪音,低成本。
导电橡胶式键盘
导电橡胶式键盘触点的接触是通过导电的橡胶接通。其结构是有一层带有凸起的导电橡胶,凸起部分导电,而这部分对准每个按键,互相连接的平面部分不导电,当键帽按下去时,由于凸起部分导电,把下面的触点按通,不按时,凸起部分会弹起。目前使用的也较多。
电容式键盘
电容式键盘它是一种类似电容式开关的原理,通过按键改变电极间的距离而产生电容量的变化,暂时形成震荡脉冲允许通过的条件。我们知道,电容的容量是由介质,两极的距离及两极的面积来决定的。所以当键帽按下时,两极的距离发生变化,这就引起电容容量发生改变,当参数设计合适时,按键时就有输出,而不按键就无输出,这个输出再经过整形放大,去驱动编码器。由于电容器无接触,所以这种键在工作过程中不存在磨损、接触不良等问题,耐久性、灵敏度和稳定性都比较好。为了避免电极间进入灰尘,电容式按键开关采用了密封组装。1000万到3000万次寿命。但目前市场上真正的电容式键盘并不多,大部分是前面两种键盘,一款真正的电容键盘价格是比较高的。
无线键盘
当然最先进的就是无线键盘,顾名思义这种键盘与电脑间没有直接的物理连线,通过红外线或无线电波将输入信息传送给特制的接收器。接收器的连接与普通键盘基本相同,也只需简单地连接到PS/2或COM口、USB口等上,购买时必须注意区别,一般无线的键盘在标识后有"RF"后缀(radio frequency),表示支持无线电波传输。现在大部分产品频点都在900 MHz,455 MHz, 330MHz。左右。
无线键盘需要使用干电池供电,对于红外线型的无线键盘具有较严格的方向性,尤其是水平位置的关系更为敏感,由于接收器接收角度有限(中心直线范围内6公尺)在键盘距离接收器太近时,会出现失灵的情况,同时灵敏度低时不能快速敲键,否则肯定会漏字符。而采用无线电的键盘要灵活得多,考虑到无线电是辐射状传播的,为了避免在近距离内有同类型(同频率)的键盘工作,导致互相干扰,一般都备有4个以上的频道,如遇干扰可以手动转频。无线键盘为了配合移动的需要,一般体积较小巧并集成有鼠标的功能,注意接收器和主机连接有两个接口,一个是PS2、一个是COM口,把这两个接口一一对应都接在主机上就可以了,但如果你不想使用键盘上的鼠标,那就只需把接收器的PS2口接在主机上就可以了,COM不接!接收器不需要外接电源,而键盘里内置的3号碱性电池可以正常使用3个月。
键盘的发展趋势
就键盘的发展来看,键盘的键位是逐渐的增多(但不是无限制的增加毕竟键盘的面积是有限的),而且是向着多功能多媒体的方向发展。从早期推出的电脑采用83键键盘,随后又推出了84键的设计标准,该标准将键盘分为三个区,即功能区、打字键区、负责光标控制和编辑的副键盘区。其中功能键区的光标键与数字键作为双功能符号键使用,使用一个"Numlock"键来控制这两种功能的切换。虽然两种规格的键盘现在已经不多见了,但是键盘主要区域的划分仍然沿用当时的标准,至今没有什么变化。直到1986年IBM公司推出了101键键盘,才在功能上实现了进一步的扩充,除了添加了F11、F12两个功能键之外,还在键盘的中部多加了一组专用的光标控制和编辑的键,在微软推出WIN95操作系统之后,出现Windows启动键,时至今日大量带各种附加功能键的键盘出现在我们的面前。例如Fn键、快捷键、带鼠标和手写板的键盘等等。
常用的键盘的接口有AT接口、PS/2接口和USB接口,现在绝大部分主板都是提供PS/2键盘接口,也称为"小口"。而兼容机尤其是较老的主板常常提供AT接口也被称为"大口",所幸的是市场上有一种大小口键盘转换连接器,售价只有区区几元钱,它一举解决了两种接口键盘的兼容性问题。一些公司还推出了USB接口的键盘。根据最新公布的 PC2001规范,以后所有通过ISA 总线工作的接口都会随着ISA总线的消亡而被USB取代。USB 允许同时将其他一些设备接入,相当于集成了一个HUB,比如可以将鼠标接入,这实际上节约了主板的COM或PS/2口。有的键盘甚至本身就集成了PS/2 转USB的电路,这样就更方便了。目前阻碍其普及的原因还是价格太高。集成USB HUB的键盘,这类键盘大多采用USB接口,由于外设使用USB的机会增加,为了使用更多的USB设备,需要添加一种USB HUB的装置扩展USB接口数量,但是专业的USB HUB价格比较昂贵,所以人们尝试将USB HUB集成到键盘或显示器中并得到成功。集成USB HUB的键盘往往自身占用一个USB接口,用以保持键盘信号与主机的传输,同时提供2到4个USB接口供其他设备连结,简单地说是一进多出,价格上要比专业的USB HUB便宜得多。
在单片机系统中,经常使用的键盘都是专用键盘。这类键盘都是单独设计制作的,成本高,连线多,且可靠性不高。这些问题在那些要求键盘按键较多的应用系统中显得更加突出。与此相比,在PC系统中广泛使用的PS/2键盘具有价格低、通用可靠,且使用的连线少(仅使用2根信号线)的特点,并可满足多数系统的要求。因此,在单片机系统中应用PS/2键盘是一种很好的选择。
本文在分析PS/2协议和PS/2键盘工作原理与特点的基础上,给出在AT89C51单片机上实现对PS/2键盘支持的硬件连接方法以及驱动程序的设计实现。
1PS/2协议
现在PC机广泛采用的PS/2接口为miniDIN 6引脚的连接器。其引脚如图1所示。
1—数据线(DATA);2—未用;3—电源地(GND);
4—电源(+5 V);5—时钟(CLK);6—未用。
图1PS/2连接器PS/2设备有主从之分,主设备采用female插座,从设备采用male插座。现在广泛使用的PS/2键盘鼠标均工作在从设备方式下。PS/2接口的时钟与数据线都是集电极开路结构的,必须外接上拉电阻。一般上拉电阻设置在主设备中。主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生。
(1) 从设备到主设备的通信
当从设备向主设备发送数据时,首先会检查时钟线,以确认时钟线是否是高电平。如果是高电平,从设备就可以开始传输数据;否则,从设备要等待获得总线的控制权,才能开始传输数据。传输的每一帧由11位组成,发送时序及每一位的含义如图2所示。
图2从设备到主设备的通信每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读入数据线状态。
(2) 主设备到从设备的通信
主设备与从设备进行通信时,主设备首先会把时钟线和数据线设置为“请求发送”状态。具体方式为:首先下拉时钟线至少100 μs来抑制通信,然后下拉数据线“请求发送”,最后释放时钟线。在此过程中,从设备在不超过10 μs的间隔内就要检查这个状态。当设备检测到这个状态时,将开始产生时钟信号。
此时数据传输的每一帧由12位构成,其时序和每一位含义如图3所示。
图3主设备到从设备的通信与从设备到主设备通信相比,其每帧数据多了一个ACK位。这是从设备应答接收到的字节的应答位,由从设备通过拉低数据线产生,应答位ACK总是为0。主设备到从设备通信过程中,主设备总是在时钟为低电平时改变数据线的状态,从设备在时钟的上升沿读入数据线状态。
2PS/2键盘的编码与命令集
(1) PS/2键盘的编码
现在PC机使用的PS/2键盘都默认采用第二套扫描码集。该扫描码集可参考文献\[1\]。扫描码有两种不同的类型:通码(make code)和断码(break code)。当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键盘会将该键的断码发送给主机。
根据键盘按键扫描码的不同,在此可将按键分为如下几类:
第一类按键,通码为1字节,断码为0xF0+通码形式。如A键,其通码为0x1C,断码为0xF0 0x1C。
第二类按键,通码为2字节0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式。如right ctrl键,其通码为0xE0 0x14,断码为0xE0 0xF0 0x14。
第三类特殊按键有两个,print screen键通码为0xE0 0x12 0xE0 0x7C,断码为0xE0 0xF0 0x7C 0xE0 0xF0 0x12; pause键通码为0x E1 0x14 0x77 0xE1 0xF0 0x14 0xF0 0x77,断码为空。
组合按键的扫描码发送按照按键发生的次序,如以下面顺序按左SHIFT+A键:1按下左SHIFT键,2按下A键,3释放A键,4释放左SHIFT键,那么计算机上接收到的一串数据为0x12 0x1C 0xF0 0x1C 0xF0 0x12。
在驱动程序设计中,就是根据这样的分类来对不同的按键进行不同处理的。
(2) PS/2键盘的命令集
主机可以通过向PS/2键盘发送命令来对键盘进行设置或者获得键盘的状态等操作。每发送一个字节,主机都会从键盘获得一个应答0xFA(“重发 resend”和“回应echo”命令例外)。下面简要介绍驱动程序在键盘初始化过程中所用的指令(详细键盘命令集见参考文献\[1\]):
0xED主机在本命令后跟随发送一个参数字节,用于指示键盘上num lock, caps lock, scroll lock led的状态;
0xF3主机在这条命令后跟随发送一个字节参数来定义键盘机打的速率和延时;
0xF4用于在当主机发送0xF5禁止键盘后,重新使能键盘。
3PS/2键盘与单片机的连接电路
PS/2键盘与AT89C51单片机的连接方式如图4所示。P1.0接PS/2数据线,P3.2(INT0)接PS/2时钟线。因为单片机的P1、P3口内部是带上拉电阻的,所以PS/2的时钟线和数据线可以直接与单片机的P1、P3相连接。
4驱动程序设计
驱动程序使用Keil C51语言,Keil uVision2编程环境。PS/2 104键盘驱动程序的主要任务,是实现单片机与键盘间PS/2通信,以及将接收到的按键扫描码转换为该按键的键值KeyVal,提供给系统上层软件使用。
(1) 单片机与键盘间PS/2通信的程序设计
在PS/2通信过程中,主设备(单片机)是在时钟信号为低时发送和接收数据信号的。因为单片机到键盘发送的是指令,需要键盘回应,所以这部分程序采用查询方式;而单片机接收键盘数据时,数据线上的信号在时钟为低时已经稳定,所以这部分程序采用中断方式,且不需要在程序中加入延时程序。单片机的键盘发送接口程序见本刊网站。
(2) 键盘扫描码转换程序设计
由于键盘扫描码无规律可循,因此由键盘扫描码获得相应按键的键值(字符键为其ASCII值,控制键如F1、CTRL等为自定义值),只能通过查表的方式。由于按键的三种类型及部分按键对应着两个键值(如A键的键值根据CAPS和SHIFT键状态有0x41(A)和0x61(a)两种),因此综合考虑查表转换速度和资源消耗,设计中使用4个键盘表:键盘扫描码转换基本集和切换集kb_plain_map\[NR_KEYS\]与 kb_shift_map\[NR_KEYS\];包含E0前缀的键盘扫描码转换基本集和切换集kbe0_plain_map\[NR_KEYS\]与 kbe0_shift_map\[NR_KEYS\]。PS/2 104键盘按键扫描码最大值为0x83,所以设置NR_KEYS为132。所有四个键盘表的定义均为如下形式:KB_MAP\[MAKE CODE\]=KEYVAL,如果扫描码对应的按键为空,如KB_MAP\[0x00\],则定义相应键值为NULL_KEY(0x00)。以下是键盘扫描码基本集的部分代码实例:kb_plain_map\[NR_KEYS\]={……
NULL_KEY;0x2C;0x6B;0x69;0x6F;0x30;0x39;NULL_KEY;// 扫描码0x40~0x47
file://对应按键空,逗号,K,I,O,0,9,空
file://对应键值 0x00,’,’,’k’,’i’,’o’,’0’,’9’,0x00
……};图4硬件连接电路如此设计键盘转换表的另一个好处在于,以后如需扩展支持有ACPI、Windows多媒体按键键盘时,只需要将键表中相应处修改即可。如ACPI power按键通码为0xE0 0x37,修改kbe0_plain_map\[0x37\]=KB_ACPI_PWR即可。
特殊按键PAUSE使用单独程序处理,如果接收到0xE1就转入这段程序;而print screen键则将其看作是两个通码分别为0xE0 0x12和0xE0 0x7C的“虚键”的组合键来处理。
在驱动程序中声明如下全局变量:led_status其bit0-scroll lock led关0、开1;bit1-num lock led关为0,开为1;bit2-caps lock led关为0,开为1;bit3~bit7总是0;agcs_status记录左右shift ctrl gui alt状态,bit0-左shift键,bit1-左ctrl键,bit2-左gui键,bit3-左alt键,bit4-右shift键,bit5-右 ctrl键,bit6-右gui键,bit7-右alt键,相应键按下则对应位为1,释放为0。E0_FLAG接到0xE0置1;E1_FLAG接收到 0xE1置1;F0_FLAG接收到0xF0置1。按键键值通过KeyVal提供给上层使用。
PS/2键盘扫描码键值转换程序ps2_codetrans()流程如图5所示。
图5扫描码键值转换程序流程第一类按键的扫描码键值转换程序代码:if (F0_FLAG) {//接收扫描码为断码
switch (mcu_revchar){//处理控制键
case 0x11: agcs_status&=0xF7;break;//左alt释放
case 0x12: agcs_status&=0xFE;break;//左shift释放
case 0x14: agcs_status&=0xFD;break;//左ctrl释放
case 0x58: if(led_status&0x04)
led_status&=0x03;//caps lock键
else led_status =0x04;
ps2_ledchange();
break;
case 0x59: agcs_status&=0xEF;break;//右shift释放
case 0x77: if(led_status&0x02)
led_status&=0x05;//num lock键
else led_status =0x02;
ps2_ledchange();
break;
case 0x7E: if(led_status&0x01)
led_status&=0x06;//scroll lock键
else led_status =0x01;
ps2_ledchange();
break;
default:break;
}
F0_FLAG = 0;
}
else {//接收扫描码为通码
if (led_status & 0x04) caps_flag = 1; else caps_flag = 0;
if (led_status & 0x02) num_flag = 1; else num_flag = 0;
if (scga_status & 0x11) shift_flag = 1; else shift_flag = 0;
file://扫描码键值转换
if ((caps_flag == shift_flag) (!num_flag)) KeyVal=kb_plain_map\[mcu_revchar\];
else KeyVal=kb_shift_map\[mcu_revchar\];
switch(mcu_revchar){//处理控制键或状态键
case 0x11: agcs_status = 0x08;//左alt按下
case 0x12: agcs_status = 0x01;//左shift按下
case 0x14: agcs_status = 0x02;//左ctrl按下
case 0x59: agcs_status = 0x10;//右shift按下
default: break;
}
}第二类按键的扫描码键值转换程序与上相似。要注意的是在退出该程序段时对E0_FLAG和F0_FLAG标志的清0。
PAUSE键的处理程序:如果接收到0xE1,置E1_FLAG=1,然后顺次将后续接收到的7个字节数据和PAUSE的通码后7个字节比较,一致则返回KeyVal=KB_PAUSE。在比较完所有7个字节后清除E1_FLAG标志。
键盘初始化程序kb_init()流程:
① 上电后,接收键盘上电自检通过信号0xAA,或者自检出错信号0xFC。单片机接收为0xAA,进入下一步,否则,进行出错处理。
② 关LED指示,单片机发送0xED,然后接收键盘回应0xFA,接着发送送0x00接收0xFA。
③ 设置机打延时和速率。 单片机发送0xF3,接收0xFA,发送0x00(250ms,2.0cps),接收0xFA。
④ 检查LED,发送0xED,接收0xFA,发送0x07(开所有LED),接收0xFA。发送0xED,接收0xFA,发送0x00(关LED),接收0xFA。
⑤ 允许键盘发送0xF4,接收0xFA。
键盘LED改变ps2_ledchange()函数流程:发送0xED→接收0xFA→发送led_status→接收0xFA。
结语
该驱动程序经Keil uVision2编译,在AT89C51单片机上运行通过,实现了对PS/2 104键盘的支持,以及对字符按键大小写切换,num lock切换,控制键及组合按键的支持。该程序对其他嵌入式或单片机系统中PS/2键盘的应用也有借鉴意义。
参考文献
1Adam Chapweske. The ATPS/2 Keyboard Interface.
2Adam Chapweske. PS/2 Mouse/Keyboard Protocol.
3Network Technologies Incorporated. PS/2 Keyboard & Mouse Protocols.
4 Linux 2.4.10内核程序 defkeymap.c dn_keyb.c kbd.c keybdev.c keyboard.c kbd_kern.h kd.h keyboard.h
PS/2帧的第一位是起始位,为0,然后是8位数据位,发送键盘扫描码的一个字节(扫描码为1-4个字节),然后是奇偶校验位,最后是停止位,为1。这些是在数据线(即1号引脚线)上发送的。无键按下时,数据线和始终线都保持为1。当有键按下时,时钟线CLOCK送出脉冲,同时数据线送出数据。主机(此处是89c51 MCU)在始终脉冲的下降沿对数据线采样获得数据。键盘扫描码包括通码和断码,当键按下时发送通码,抬起时发送断码。更详细的内容可参考所附的《PS/2 技术参考》。
根据上述原理,我们可以将键盘的脉冲线接至89c51的外部中断输入口(INT0或INT1),当键按下和抬起时有脉冲产生,此脉冲引发MCU 中断。将键盘的DATA线连至89c51的输入口(如P1.0)。在中断处理程序中,从输入口读入数据,然后通过循环移位对读进的数据位进行处理,1(起始位)、10(奇偶校验)、11(停止位)可抛弃,如不嫌麻烦也可将奇偶校验位加以应用。当一个数据帧收完后,将处理后剩下的2-9位(即扫描码)通过串口发至PC机,通过PC机的串口监视软件(如“串口调试助手”)来查看。硬件连线和源码如下:
源码:
ORG 0000H
AJMP MAIN;转入主程序
ORG 0003H ;外部中断P3.2脚INT0入口地址
AJMP INT ;转入外部中断服务子程序
;以下为主程序进行CPU中断方式设置
MAIN:MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB EA ;打开CPU总中断请求
SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发
SETB EX0 ;打开INT0中断请求
SJMP $
INT: CLR EA ;暂时关闭CPU的所有中断请求
CJNE R0,#0,L1
L3: INC R0
SJMP L5
L1: CJNE R0,#9,L2
SJMP L3
L2: CJNE R0,#10,L4
SETB TR1;启动定时器T1
MOV SBUF,A
MOV R0,#0
L5: SETB EA ;允许中断
RETI ;退出子程序
L4: MOV C,P1.0
RRC A
SJMP L3
END
搞定后,当按下和释放键时,会在PC机上显示其扫描码。
通电时键盘会自检,此时键盘上三个灯全亮,自检完成后熄灭,并向主机发送十六进制字符AA.。
⑼ PCM编译码系统由哪些部分构成各部分的作用是什么
PCM
编译码系统由哪些部分构成
?
各部分的作用是什么
?
回答:
其中,低通滤波器:把话音信号带宽限制为
3.4KHz
,把高于这个频率的信号过滤掉。
抽样:
对模拟信号以其信号带宽
2
倍以上的频率进行周期性的扫描,
把时间上连续的信号变
成时间上离散的信号。
量化:把经抽样得到的瞬时值进行幅度离散化,即指定
M
个规定的电平,把抽样值用最接
近的电平标示。
编码:用二进制码组表示有固定电平的量化值。
译码:与编码器的作用相反,把收到的
PCM
信号还原成相应的
PAM
信号,实现数模变换