接口协议范文

时间:2023-03-12 02:47:38

接口协议

接口协议范文第1篇

论文摘要:文中详细介绍了ps/2接口协议的内容、电气特性和标准键盘的第二套键盘扫描码集。给出了基于嵌入式系统的ps/2接口的软、硬件实现方法,并介绍了工控pc外接双键盘的解决方案。通过使用模拟开关cd4052巧妙地解决了工控pc外接双键盘的冲突问题。

1 ps/2接口标准的发展过程

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年ibm推出了ibm pc/xt键盘及其接口标准。该标准定义了83键,采用5脚din连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年ibm推出了ibmat键盘接口标准。该标准定义了84~101键,采用5脚din连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,ibm又推出了ps/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-din连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和ps/2及at键盘兼容,只是功能不同而已。

2 ps/2接口硬件

2.1 物理连接器

一般,具有五脚连接器的键盘称之为at键盘,而具有六脚mini-din连接器的键盘则称之为ps/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是clock(时钟脚)、data?数据脚?、+5v(电源脚)和ground(电源地)。在ps/2键盘与pc机的物理连接上只要保证这四根线一一对应就可以了。ps/2键盘靠pc的ps/2端口提供+5v电源,另外两个脚clock(时钟脚)和data?数据脚?都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。

2.2 电气特性

ps/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过clock(时钟脚)同步,并通过data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把clock(时钟脚)拉到低电平。如果是pc机和ps/2键盘间的通讯,则pc机必须做主机,也就是说,pc机可以抑制ps/2键盘发送数据,而ps/2键盘则不会抑制pc机发送数据。一般两设备间传输数据的最大时钟频率是33khz,大多数ps/2设备工作在10~20khz。推荐值在15khz左右,也就是说,clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位,具体含义如表1所列。

表1 数据帧格式说明

1个起始位

总是逻辑0

8个数据位

(lsb)低位在前

1个奇偶校验位

奇校验

1个停止位

总是逻辑1

1个应答位

仅用在主机对设备的通讯中

表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

2.3 ps/2设备和pc机的通讯

ps/2设备的clock(时钟脚)和data?数据脚?都是集电极开路的,平时都是高电平。当ps/2设备等待发送数据时,它首先检查clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是pc机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般ps/2键盘有16个字节的缓冲区,而ps/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果clock(时钟脚)为高电平,ps/2设备便开始将数据发送到pc机。一般都是由ps/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在clock(时钟脚)为高电平时准备好,在clock(时钟脚)的下降沿被pc机读入。ps/2设备到pc机的通讯时序如图2所示。

当时钟频率为15khz时,从clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由ps/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。

上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(make)和断码(break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。

3 ps/2接口的嵌入式软件编程方法

ps/2设备主要用于产生同步时钟信号和读写数据。

3.1 ps/2向pc机发送一个字节

从ps/2向pc机发送一个字节可按照下面的步骤进行:

(1)检测时钟线电平,如果时钟线为低,则延时50μs;

(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);

(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时pc机在向ps/2设备发送数据,所以ps/2设备要转移到接收程序处接收数据);

(4)延时20μs(如果此时正在发送起始位,则应延时40μs);

(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保pc机没有抑制ps/2设备,如果有则中止发送;

(6)输出8个数据位到数据线上;

(7)输出校验位;

(8)输出停止位(1);

(9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);

通过以下步骤可发送单个位:

(1)准备数据位(将需要发送的数据位放到数据线上);

(2)延时20μs;

(3)把时钟线拉低;

(4)延时40μs;

(5)释放时钟线;

(6)延时20μs。

3.2 ps/2设备从pc机接收一个字节

由于ps/2设备能提供串行同步时钟,因此,如果pc机发送数据,则pc机要先把时钟线和数据线置为请求发送的状态。pc机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当ps/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而ps/2设备则要配合pc机才能读到准确的数据。具体连接步骤如下:

(1)等待时钟线为高电平。

(2)判断数据线是否为低,为高则错误退出,否则继续执行。

(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被pc机拉低,如果被拉低则要中止接收。

(4)读地址线上的校验位内容,1个bit。

(5)读停止位。

(6)如果数据线上为0(即还是低电平),ps/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果ps/2设备没有读到停止位,则表明此次传输出错)。

(7 输出应答位。

(8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。

(9)延时45 μs,以便pc机进行下一次传输。

读数据线的步骤如下:

(1)延时20μs;

(2)把时钟线拉低?

(3)延时40μs?

(4)释放时钟线?

(5)延时20μs?

(6)读数据线。

下面的步骤可用于发出应答位;

(1)延时15μs;

(2)把数据线拉低;

(3)延时5μs;

(4)把时钟线拉低;

(5)延时40μs;

(6)释放时钟线;

(7)延时5μs;

(8)释放数据线。

4 用于工控机的双键盘设计

工控机通常要接标准键盘,但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控pc机到ps/2总线上再接入一个自制专用键盘的应用方法。

该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控pc的ps/2口。鉴于这种情况,本设计使用模拟开关cd4052并通过时分复用工控pc的ps/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中p2口和p1口用于键盘扫描电路(图中未画出),p0.0为数据端,p0.1为时钟端,p0.2为模拟开关选通端。由于专用键盘不需要接收工控pc机的命令,所以软件中并不需要写这部分相应的代码。

通过软件可在专用键盘复位后把p0.2清0,以使模拟开关cd4052打开相应的通道。这时工控pc的标准键盘将开始工作。标准键盘可以完成工控pc刚启动时对外设检测的应答。复位后的专用键盘不停地扫描有没有按键,如果有键按下则识别按键,并且按照预先的设计进行编码,同时调用发送程序并通过ps/2口发送到工控pc。此时模拟开关关闭相应通道(将p0.2置1),专用键盘接入工控pcps/2口的时钟线和数据线而工作,但标准键盘被模拟开关从ps/2的时钟线和数据线中断而不工作,这样,双键盘便可时分复用同一个工控pc机的ps/2口。相应的发送子程序如下:

#define datap00 用p0.0做数据线

#define clkp01 用p0.1做时钟线

#define inhibitp02 用p0.2做cd4052的inh端

#define portrp1 用p1口做读入口

#define portwp2 用p2口做写出口 可以实现64个自定义键

void send(ucharx)/***function forsend a char da-ta***/

{

uchar i,temp,char_temp;

bit flag_check=1;

inhibit=1;//disable standard keyboard

delay_ ms(3);

temp=x;

for(i=0;i<8;i++)//find the number of 1 in this uchar x is odd or not

{

char_temp=temp&0x01;

if(char_temp==0x01)

{

flag_check=!flag_check;

}

temp=temp>>1;

}

clk=1;//send 1 to p1 then read p1

while (!clk) //ifclk is low wait

{

;

}

clk=1;data=1;//send 1 to p1 then read p1

if(clk==1)

{

delay_us(30);//

}

if(clk==1&&data==1)//send data

{

data=0;//start bit 0

delay_us(10);

clk=0;

delay_us(5);//

temp=x;

for(i=0;i<8;i++)//send 8 bits lsbfirst

{

clk=1;

delay_us(5);

char_temp=temp&0x01;

if(char_temp==0x01)

{

data=1;

}

else

{

data=0;

}

//data=(bit)(temp&0x01);

//lsb

delay_us(10);

clk=0;

delay_us(5);

temp=temp>>1;

}

clk=1;//send check bit

delay_us(5);?

data=flag_check;

delay_us(10);?

clk=0;

delay_us(5)

clk=1;//send stop bit

delay_us(5);?

data=1;

delay us?10??

clk=0?

delay_us(5);?

clk=1;

delay_us(30);? ?

clk=1;data=1;//send 1 to p1 then read p1

if(clk==1&&data==0)

{

return; //pc is sending data to mcu, go to

receiving function

}

inhibit=0; //enable standard keyboard

}

5 结论

接口协议范文第2篇

1 PS/2接口标准的发展过程

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。

2 PS/2接口硬件

2.1 物理连接器

一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data数据脚、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。

2.2 电气特性

PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位,具体含义如表1所列。

表1 数据帧格式说明

1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

2.3 PS/2设备和PC机的通讯

PS/2设备的Clock(时钟脚)和Data数据脚都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。PS/2设备到PC机的通讯时序如图2所示。

当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到Clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由PS/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。

上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(Make)和断码(Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。

3 PS/2接口的嵌入式软件编程方法

PS/2设备主要用于产生同步时钟信号和读写数据。

3.1 PS/2向PC机发送一个字节

从PS/2向PC机发送一个字节可按照下面的步骤进行:

(1)检测时钟线电平,如果时钟线为低,则延时50μs;

(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);

(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);

(4)延时20μs(如果此时正在发送起始位,则应延时40μs);

(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;

(6)输出8个数据位到数据线上;

(7)输出校验位;

(8)输出停止位(1);

(9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);

通过以下步骤可发送单个位:

(1)准备数据位(将需要发送的数据位放到数据线上);

(2)延时20μs;

(3)把时钟线拉低;

(4)延时40μs;

(5)释放时钟线;

(6)延时20μs。

3.2 PS/2设备从PC机接收一个字节

由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:

(1)等待时钟线为高电平。

(2)判断数据线是否为低,为高则错误退出,否则继续执行。

(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。

(4)读地址线上的校验位内容,1个bit。

(5)读停止位。

(6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。

(7 输出应答位。

(8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。

(9)延时45 μs,以便PC机进行下一次传输。

读数据线的步骤如下:

(1)延时20μs;

(2)把时钟线拉低

(3)延时40μs

(4)释放时钟线

(5)延时20μs

(6)读数据线。

下面的步骤可用于发出应答位;

(1)延时

15μs;(2)把数据线拉低;

(3)延时5μs;

(4)把时钟线拉低;

(5)延时40μs;

(6)释放时钟线;

(7)延时5μs;

(8)释放数据线。

4 用于工控机的双键盘设计

工控机通常要接标准键盘,但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控PC机到PS/2总线上再接入一个自制专用键盘的应用方法。

该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控PC的PS/2口。鉴于这种情况,本设计使用模拟开关CD4052并通过时分复用工控PC的PS/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中P2口和P1口用于键盘扫描电路(图中未画出),P0.0为数据端,P0.1为时钟端,P0.2为模拟开关选通端。由于专用键盘不需要接收工控PC机的命令,所以软件中并不需要写这部分相应的代码。

通过软件可在专用键盘复位后把P0.2清0,以使模拟开关CD4052打开相应的通道。这时工控PC的标准键盘将开始工作。标准键盘可以完成工控PC刚启动时对外设检测的应答。复位后的专用键盘不停地扫描有没有按键,如果有键按下则识别按键,并且按照预先的设计进行编码,同时调用发送程序并通过PS/2口发送到工控PC。此时模拟开关关闭相应通道(将P0.2置1),专用键盘接入工控PC PS/2口的时钟线和数据线而工作,但标准键盘被模拟开关从PS/2的时钟线和数据线中断而不工作,这样,双键盘便可时分复用同一个工控PC机的PS/2口。相应的发送子程序如下:

#define DATA P00 用P0.0做数据线

#define CLK P01 用P0.1做时钟线

#define INHIBIT P02 用P0.2做CD4052的INH端

#define PORTR P1 用P1口做读入口

#define PORTW P2 用P2口做写出口 可以实现64个自定义键

void send(uchar x)/***function for send a char da-ta***/

{

uchar i,temp,char_temp;

bit flag_check=1;

INHIBIT=1;//disable standard keyboard

delay_ ms(3);

temp=x;

for(i=0;i<8;i++)//find the number of 1 in this uchar x is odd or not

{

char_temp=temp&0x01;

if(char_temp==0x01)

{

flag_check=!flag_check;

}

temp=temp>>1;

}

CLK=1;//send 1 to P1 then read P1

while (!CLK) //if CLK is low wait

{

;

}

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1)

{

delay_us(30);//

}

if(CLK==1&&DATA==1)//send data

{

DATA=0;//start bit 0

delay_us(10);

CLK=0;

delay_us(5);//

temp=x;

for(i=0;i<8;i++)//send 8 bits LSBfirst

{

CLK=1;

delay_us(5);

char_temp=temp&0x01;

if(char_temp==0x01)

{

DATA=1;

}

else

{

DATA=0;

}

//DATA=(bit)(temp&0x01);

//LSB

delay_us(10);

CLK=0;

delay_us(5);

temp=temp>>1;

}

CLK=1;//send check bit

delay_us(5);

DATA=flag_check;

delay_us(10);

CLK=0;

delay_us(5)

CLK=1;//send stop bit

delay_us(5);

DATA=1;

delay us10

CLK=0

delay_us(5);

CLK=1;

delay_us(30); 

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1&&DATA==0)

{

return; //pc is sending data to mcu, go to

receiving function

}

INHIBIT=0; //enable standard keyboard

}

5 结论

接口协议范文第3篇

随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。

2 PS/2接口硬件

2.1 连接器

一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data熓据脚牎ⅲ5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data熓据脚牰际羌电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。

2.2 电气特性

PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位,具体含义如表1所列。

表1 数据帧格式说明

1个起始位 总是逻辑0

8个数据位 (lsb)低位在前

1个奇偶校验位 奇校验

1个停止位 总是逻辑1

1个应答位 仅用在主机对设备的通讯中

表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

2.3 PS/2设备和PC机的通讯

PS/2设备的Clock(时钟脚)和Data熓据脚牰际羌电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。PS/2设备到PC机的通讯时序如图2所示。

当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到Clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由PS/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。

上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(Make)和断码(Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。

3 PS/2接口的嵌入式软件编程方法

PS/2设备主要用于产生同步时钟信号和读写数据。

3.1 PS/2向PC机发送一个字节

从PS/2向PC机发送一个字节可按照下面的步骤进行:

(1)检测时钟线电平,如果时钟线为低,则延时50μs;

(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);

(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);

(4)延时20μs(如果此时正在发送起始位,则应延时40μs);

(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;

(6)输出8个数据位到数据线上;

(7)输出校验位;

(8)输出停止位(1);

(9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);

通过以下步骤可发送单个位:

(1)准备数据位(将需要发送的数据位放到数据线上);

(2)延时20μs;

(3)把时钟线拉低;

(4)延时40μs;

(5)释放时钟线;

(6)延时20μs。

3.2 PS/2设备从PC机接收一个字节

由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:

(1)等待时钟线为高电平。

(2)判断数据线是否为低,为高则错误退出,否则继续执行。

(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。

(4)读地址线上的校验位内容,1个bit。

(5)读停止位。

(6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。

(7 输出应答位。

(8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。

(9)延时45 μs,以便PC机进行下一次传输。

读数据线的步骤如下:

(1)延时20μs;

(2)把时钟线拉低

(3)延时40μs

(4)释放时钟线

(5)延时20μs

(6)读数据线。

下面的步骤可用于发出应答位;

(1)延时15μs;

(2)把数据线拉低;

(3)延时5μs;

(4)把时钟线拉低;

(5)延时40μs;

(6)释放时钟线;

(7)延时5μs;

(8)释放数据线。

4 用于工控机的双键盘

设计 工控机通常要接标准键盘,但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控PC机到PS/2总线上再接入一个自制专用键盘的应用方法。

该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控PC的PS/2口。鉴于这种情况,本设计使用模拟开关CD4052并通过时分复用工控PC的PS/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中P2口和P1口用于键盘扫描电路(图中未画出),P0.0为数据端,P0.1为时钟端,P0.2为模拟开关选通端。由于专用键盘不需要接收工控PC机的命令,所以软件中并不需要写这部分相应的代码。

5 结论

接口协议范文第4篇

引言

接入网的概念是由传统的用户线发展起来的。近年来,由于电话业务的发展、新业务种类的增多、对线路带宽要求的提高以及各种新兴技术(特别是光纤通信技术)的发展,使得传统的用户线的概念逐渐发展成为接入网的概念。前几年,国际电信联盟(ITU)正式定义了用户接入网。引入接入网后,现有的电信网将减少端局数量,简化中继网的复杂程度,有利于中继网的管理。

接入网所覆盖的范围可以由三类接口来界定,如图1所示。接口的标准化、综合性直接影响到接入网的建设成本及接入网能承载的业务能力,为此,ITU-T综合考虑各种需要,终于通过了关于接入网和本地交换机之间标准化的V5.1和V5.2接口的建议[1,2]。

V5接口是一种在接入网中适用范围广、标准化程度高的新型开放的数字接口,对于设备的开发应用、多种业务的发展和网络的更新起着重要的作用。V5接口的标准化代表了重要的网络演进方向,影响深远。其意义在于交换机通过此接口可以支持多种类型的用户接入,而且V5接口的开放性意味着交换机和接入网的技术和业务演进完全独立开来。接入网的发展可以不受交换机的限制,使得接入网市场完全开放。

一、V5接口协议结构

窄带V5接口包括V5.1和V5.2接口。V5.1接口由1条2048Kb/s链路构成,通过时隙传递公共控制信号,支持模拟电话接入,基于64Kb/s的综合业务数字网基本接入(2B+D)和用于半永久连接的、不加带外信令信息的其他模拟接入和数字接入。这些接入类型都具有指配的承载通路分配,即用户端口与V5.1接口内承载通路有固定的对应关系。V5.2接口按需要可以由1~16个2048Kb/s链路构成,除支持V5.1接口的业务外,还支持ISDN PRI(30B+D)接入,其基于呼叫的时隙分配使得V5.2接口具有集中功能。V5.1接口是V5.2接口的子集,V5.1接口应当能够升级到V5.2接口。

V5接口协议由3层组成,接入网侧和本地交换机侧呈不对称布置,层与层之间的信息传递采用原语实现,而同层子层间的信息传递则采用映射。

V5接口物理层由1~16条2048Kb/s的链路构成,电气和物理特性符合G.703建议,帧结构符合G.704/G.706建议。每帧由32个时隙组成,其中:时隙TS0用作帧定位和CRC-4规程;时隙TS15、TS16和TS31可以用作通信通路(C通路),运载信令信息和控制信息,通过指配来分配;其余时隙可用作承载通路。

V5接口的数据链路层仅对于C通路而言。第二层协议(LAPV5)规范以建议Q.921中规定的LAPD协议和规程为基础,允许将不同的信息流灵活地复用到C通路上去。第二层协议分为两个子层:封装功能子层(LAPV5-EF)和数据链路子层(LAPV5-DL)。此外,第二层功能中还应包括帧中继功能(AN-FR)。

V5接口的第三层协议簇包括PSTN协议、控制协议、链路控制协议、BCC协议和保护协议(后三种协议为V5.2接口特有)。PSTN协议负责处理与PSTN业务有关的信令;控制协议负责用户端口状态指示与控制,协调两侧在网管控制下的数据指配;链路控制协议负责协调和控制AN、LE两侧的链路阻塞、链路解除阻塞和链路标识功能;BCC协议用来把一特定2048Kb/s链路上的承载通路基于呼叫分配给用户端口;保护协议提供V5.2接口在出现故障时通信路径切换的保护功能。

如图2所示,当第三层协议有信令信息需要发送时,通过数据链路子层(LAPV5-DL),请求封装功能子层(LAPV5-EF),用给定的封装功能地址传送数据链路子层端到端数据。

二、V5接口的实现

笔者曾参与IDS2000综合数字通信系统(接入网侧)V5.2接口的开放研制工作。IDS2000综合数字通信系统是电力自动化研究院为了满足电力通信网发展的需要而开发的一种综合接入设备。该设备具备V5接口,使得IDS2000系统可以很方便地通过开放接口和大型交换设备互连,取代了原先接入大型交换设备时所用的音频Z接口或专用接口。

V5接口协议分3层结构。物理层和数据链路层部分功能由硬件实现,这在超大规模集成电路飞速发展的今天,难度已不是太大。Mitel公司生产的大规模E1接口芯片MT9075就是一种很合适的芯片[3]。MT9075是一种单E1接口,综合了成帧器和LIU。重要特性包括数据链路接入、告警、中断、环回和诊断,并内嵌了两个HDLC控制器(MT8952),特别适用在V5接口(封装功能子层功能和HDLC协议类似)。

V5接口的第三层协议包含内容较多,由软件实现。本文主要结合嵌入式系统编程来介绍V5接口的第三层软件结构,对于协议细节的实现不多赘述。

1.实时多任务操作系统[4]

目前,嵌入式应用领域的一个发展倾向是采用实时多任务操作系统RTOS(Real Time Operating System)。RTOS的广泛使用与应用的复杂化有关。过去1个单片机应用程序所控制的外设和履行的任务不多,采取1个主循环和几个顺序调用的子程序模块即可满足要求;但现在1个嵌入式控制系统可能要同时控制/监视很多外设,要求实时响应,有很多处理任务,各个任务之间有很多信息传递,如果仍采用原来的方法,存在两个问题:一是中断可能得不到及时响应,处理时间过长;二是系统任务多,要考虑的各种可能也多,各种资源若调度不当就会造成死锁,降低软件可靠性,程序编写任务量成指数增加。正是这种情况的出现,推动着RTOS的应用迅速发展。

对于V5接口,系统软件工作量相当大,包括5个核心协议功能的处理,须管理很多定时器,有很多用户端口需要监视,并且要求实时处理,若采用传统的软件编程方法,很难实现。在IDS2000系统中,笔者采用VRTX实时多任务操作系统[5]作为开发平台,大大减轻了软件的工作量,而采用面向对象的编程方法和

事件驱动的消息机制,使得协议程序具有高可靠性、可控、可观测、易于维护和管理。 2.V5接口软件框图

如图3所示,V5接口软件主要包括:

(1) 数据链路层模块(仅包括数据链路子层功能,封装功能子层由硬件板完成);

(2) PSTN协议处理模块;

(3) 控制协议处理模块(包括用户端口状态机、指配控制状态机、公共控制状态机);

(4) 链路控制协议处理模块(包括链路控制状态机、链路控制L3状态机);

(5) BCC协议处理模块;

(6) 保护协议模块;

(7) V5接口AN侧系统管理模块;

(8) V5接口AN侧资源管理模块;

(9) 定时器管理模块;

(10) 消息处理模块;

(11) 用户端口模块;

(12) 10ms定时中断。

上述模块中,模块1~7完成V5接口协议的核心功能。其中,数据链路层模块对模块2~7所产生的消息进行处理,交由V5硬件接口板完成封装功能,再发送给LE侧实体;PSTN协议处理模块主要功能是建立用户端口状态和LE侧国内协议实体之间的联系;控制协议模块用于表示用户端口状态指示与控制,还和系统启动、重新启动、指配有关;V5接口AN侧系统管理模块是协议功能正常实现的重要部分,在AN和LE中,不同的FSM之间或第二层协议实体之间没有直接的通信,而是通过系统管理来协调V5接口各个协议实体之间的操作。另外,系统管理负责从AN或LE的各种功能模块中接收和处理有关状态和故障的信息。系统管理还是维护台或网管系统与V5接口之间的桥梁,它负责接收维护命令,并对V5接口执行相应的操作,随时向上层网管报告系统的运行状况。

模块8~12完成V5接口协议的辅助功能。其中用户端口模块负责用户端口状态扫描与控制,直接与硬件端口联系;AN侧资源管理模块配合BCC协议处理模块完成V5接口中BCC协议功能;消息处理模块是为了减轻操作系统的负担设立的,它负责协同操作系统管理各模块的消息队列;定时器管理模块负责产生、管理系统中所需要的定时器,当定时器溢出时,发送消息至相应模块;10ms定时中断程序负责调度系统中需周期性运行的任务,采用“信号量”(semaphores)的通信机制完成。

3.有限状态机

在上述程序模块中,存在大量的有限状态机(FSM),如控制协议中的用户端口FSM、公共控制FSM、BCC协议中的承载通路连接FSM等。有限状态机是描述通信协议过程的一般方式,是一种面向对象的描述方法,与具体实现程序无关。有限状态机具有有限状态集,在任意给定的时刻,必有惟一确定的状态,在某状态下必须依赖于外部输入的特定消息触发,才能引起状态转移或执行某种任务。

有限状态机对于系统其他软件而言相当于一个“黑匣子”。它可以接收有限的消息组,也可以发送特定的消息组,但其内部结构不为系统其他部分所知。它的功能完全由它接收和发送消息顺序所决定。

有限状态机的这种描述方式很适合用面向对象的方法实现。在传统的实现方法中,状态变量和状态表可以在状态机模块外被访问,易于遭到破坏。面向对象的实现方法提供了一种更加结构化和更加直观的FSM实现方法,更利于“数据隐藏”,而且这些优点随着FSM规模的增大越发明显。我们只须要定义一个FSM基类,利用封装、继承和多态性的特点,就很容易从先前定义的基类中派生出所需要的FSM,大大减少了软件的工作量,软件也易于维护。

4.定时器的实现机制

定时器对于正确实现通信协议功能有着很重要的作用。V5接口协议中存在大量的定时器,当话务量较大时,可能有数百个定时器同时运行。定时器的设计是正确完成V5接口协议功能的一个重要部分。

本系统中由定时器管理进程负责管理V5接口中所有的定时器。由于各种定时器所要求的精度各不相同,所选择时间的长度对各定时器进行监视和计数累计是问题的关键:时间间隔太小,影响系统运行效率;时间间隔太长,影响定时器的精度。为了解决这个问题,系统中设定了三种不同分辨率的定时器:10ms、100ms和1s(分辨率指计数时间间隔)。

若某应用进程须要使用定时器,首先要向定时器管理进程发送一消息,消息中应包含申请定时器的分辨率、预置计数值、溢出后应发送的消息等信息。定时器管理进程收到该消息后,根据定时器的分辨率将其放到合适的定时队列中,启动定时。若定时器计数为零,则表示该定时器溢出,定时器管理进程应向相应的应用进程发送溢出消息,同时应释放该定时器。应用进程若主动要求放弃一定时器,则应向定时器管理进程发送一释放定时器消息。消息中应包含所申请定时器的标号、分辨率以及溢出目标进程、目标对象等。定时器管理进程接收到此消息后,在合适的定时器队列中寻找到该定时器后,将其释放。 定时器管理进程管理其他各应用进程所申请的定时器。在定时器管理进程中,有三个链表分别用于存放这3种不同分辨率的定时器。

定时器管理进程完成以下一些基本功能:

(1)管理10ms、100ms和1s三种定时器链表。

(2)当10ms定时间隔到,应遍历10ms定时器链表,完成对链表中各定时器的计数处理。若有定时器溢出,则向相应的进程发送溢出消息,并从定时器链表中释放该定时器。同样,当100ms或1s的定时间隔到时,也应对100ms或1s定时器链表作相同处理。

(3)处理从其他进程接收到的消息。当收到从其他进程发送的申请定时器的消息时,应在相应分辨率的定时器链表中插入所申请的定时器;在接收到从其他进程来的释放定时器的消息后,应寻找到该定时器,并将其释放。

5.编写可重入函数

V5接口中有大量的函数需要编写。和传统的编程环境不同,本系统中,V5接口软件运行在多任务环境上,函数的可重入性(reentrancy)显得很重要。

所谓可重入函数是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。在编写函数时应尽量只使用局部变量,对于要使用的全局变量需要加以保护(如采用关中断、信号量等措施),这样构成的函数一定是可重入的;而编译器是否具有可重入的库,与它所服务的操作系统有关,如DOS下的Borland C和Microsoft C/C++等就没有可重入函数库,这是因为DOS是一个单用户、单任务的操作系统。

为了确保每一个调用函数的任务控制自己私有变量,在一个可重入的C函数中,将这样的变量申明为局部变量,C编译器将这样的变量存放在调用栈上或寄存器里。在VRTX操作系统下编写可重入的函数,须要遵循以下原则:

(1)将所有局部变量申明为auto或寄存器(register)类型;

(2)尽量不要使用static或extern变量,不可避免使用全局变量时,需加以保护;

(3)用VRTX库函数sc_gblock分配大的数据结构。

三、V5接口发展的趋势

从长远看,为了克服现有一系列SNI(业务节点接口)功能的限制,须要开发附加的SNI,特别是模块型和B-ISDN接入型SNI。目前,以ATM为基础的VB5接口的标准化工作正在进行。VB5参考点可分为VB5.1和VB5.2两种形式。

接口协议范文第5篇

关键词:HART协议 DCS接口卡 应用

根据HART协议的DCS接口卡的硬件和软件设计,我们对其进行过研究分析,了解DCS-HART接口卡的功能和它的工作过程,让我们更好的知道DCS接口卡是怎样对现场仪表进行控制操作的。

一、HART协议

HART协议是远程传感器高速通道的开放协议,它采用的是半双工通信方式,在原有的模拟信号传输上进行数字信号的通信,这种将模拟信号转变为数字信号的系统得到了快速的发展,它设定了一系列的命令其中有通信命令、行为命令、特殊设备命令,这三种命令可以同时出现在一个设备中 。

二、DCS-HART接口卡的硬件设计

DCS-HART接口卡的工作程序,是由MPU对串行口2和DCS通讯,经过串行口1和现场仪表进行通讯,根据卡件的工作状态进行控制信号的输出来决定DC\DC器件向通讯线的供电。MODEM将MPU输出的数字信号转变为HART协议的物理层信号,从MODEM向通讯链路发送的波形和在链路上接收到的波形要进行放大、驱动。变压器使得DCS-HART接口卡和通讯链路发生了耦合作用,将HART协议产生的物理层信号进行叠加,加到要进行采样的电阻上,采样电阻是电压/电流的转换器件,它将HART协议产生的物理层信号转化成电压信号,而DC/DC器件主要是用于向通信链路进行隔离供电。

三、软件设计

1.能够保证DCS和现场仪表的通讯

HART协议对于通讯波特率的规定实际上只有1200bps,它不可能在一次中断完成命令的接受/发送,所以在HART仪表的通讯中断中,每次只接收/发送一个字节,根据接受/发送的状态进行字节的成帧,这样进行的中断需要耗费的时间仅有几百个微秒,每两个字节发送的时间间隔是9.167ms,这是两次通讯程序的中断时间间隔。

如果在DCS串行口中断执行时产生HART通讯中断,可以在DCS中断程序退出后进行HART程序的中断。如果在HART的串行口进行中断时有DCS通讯中断发生在结束HART中断后,再进行DCS中断。

2.有随时插随时用的功能

接口卡的这个功能可以分为两个含义:(一)接口卡可以随时对下位仪表的在线状态进行检测,并将检测结果报告给用户。(二)接口卡可以将下位仪表的数据进行读取或者是对下位仪表发送用户设置的参数。

用户他们不需要在DCS操作台上对每台仪表的信息进行组合,通电开始,卡件就会依次的对每台设备进行地址的查询,并收集每一台设备的管理信息,把这些收集到的信息保存到设备管理的缓冲区域中,方便DCS进行查询。根据下位机的在/离线状态实时数据就会在50ms一次中报告给DCS,所以用户想要观察到画面中的每一路现场仪表的在线状态可以在DCS的操作站台上进行查看[1]。

3.在DCS的结构上实现了对HART仪表的网络管理

DCS对于HART网络的管理存在不足之处,那就是在通讯结构上是进行的主从式通讯,通讯的层次相对较多,通讯的速率也比HART协议规定的1200bps快的多的多。

由于现场仪表的上/离线情况是突发性的,所以当接口卡检测到这种事情的发生后就会自动的将事件上报给DCS的室内操作台,而主从式的通讯结构是不能完成这样的上报事件的,由于这种事件的信息量不是很大,所以只需要很少的字节就可以将全部现场仪表的在线状态表达出来,所以,这种信息可以放到实时数据里发送给操作[2]。

为了使现现场仪表中的信息得以保存,操作台要4次的数据命令,才能使得每一层的信息得以更新,第4次收到的信息才是最新的现场仪表组态信息。

4.HART协议的通讯速度问题

HART协议发送一个字节需要9.167ms,在HART协议中一个很简单的命令就有十几个字节,而对于下位机的响应又有二十几个字节,要完成一次通讯命令要花去将近半秒钟的时间。所以轮询4台下位机要花去2s的时间,DCS和接口卡的实时数据通讯时间对于2s来说可以是忽略的,也就是说实时数据可以在两秒内进行一次更新,如果发生DCS下达命令,实时数据的更新就会增加时间。在完成对4台仪表5遍的实时数据检测,平均响应时间为最大的响应时间一半,也就是5s[3]。

四、小结

DCS接口卡中HART协议的应用,在一定的程度上减少对现场仪表的维护工作,还节约了材料。DCS接口卡初步的实现了对现场仪表的网络化管理,DCS-HART接口卡现场仪表的总线进行了功能的集成,对于DCS接口卡进行对现场仪表系统的完全控制可以慢慢的进行探索。

参看文献

接口协议范文第6篇

关键词:ARM;现场总线;ModBus协议;电平转换;驱动程序

中图分类号:TP368.1 文献标识码:A 文章编号:1009-3044(2013)19-4429-04

随着控制、计算机、通信、网络等技术的发展,信息交换沟通的领域正在迅速覆盖从现场设备到控制、管理、驱动、开发的各个层次。而其中的现场总线技术是其主要的组成部分,直接关系到工业控制集成系统性能以及系统的稳定可靠。

现场总线是一种连接智能现场设备和自动化系统的全数字化、双向传输、多分支结构的串行通信网络。现场总线的关键标志是能够支持双向、多节点、总线式的全数字通信。

本设计的主要工作是采用基于ARM7内核的高性能处理器LPC2131作为主控芯片,并使用了专用的总线协议芯片AD2483,实现ModBus现场设备与异构系统之间的数据传输与协议转换。该协议转换模块系统框图如图1所示。

1 协议转换模块介绍

1.1 模块工作原理

协议转换模块的功能是完成现场ModBus设备数据的采集和数字化处理,并将转换后的结果通过异构系统的内部总线传送到上层控制系统。同时实现上层控制系统对现场设备的控制与配置。

该模块采用RS-485电平转换芯片,该芯片自带电气信号隔离,信号调理技术。该模块提供通信检测显示功能,可提供独立隔离的24VDC供电电源输出,用于现场ModBus设备的工作电源。图2为模块系统总体结构框图。

1.2 ModBus通讯规约

在各种不同的系统通信中,ModBus协议是一种在工业领域被广泛应用的、真正开放的、标准的网络通信协议,通过该协议,不同厂家的现场设备可以实现数据通信。

ModBus可编程控制器之间可以相互通讯,也可与不同网络上的其他设备进行通讯。网络信息存取可由控制器内置的端口,网络适配器和网关等设备实现。该协议定义了控制器能识别和使用的信息结构。当在ModBus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用ModBus协议将此信息传送出去。

在其他网络上使用时,数据包和数据帧中也包含着ModBus协议。网络控制器中有相应的应用程序库和驱动程序,实现嵌入式ModBus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。

ModBus采用主从方式,若一台控制器作为主机设备发送一个信息,则可从一台从机设备返回一个响应,类似,当一台控制器接受信息时,它就组织一个从机设备的响应信息,并返回至原来发送信息的控制器。

2 硬件电路设计

2.1 电源电路

电源电路模块主要对模块的电源部分进行处理,将工控行业普遍采用的直流24VDC的输入转变为模块CPU需要的5VDC和3.3VDC,同时进行EMC防护。该模块在输入电压出增加了防雷击浪涌电路和支持热插拔电路,使用的主要器件是LT4356-1。电源电路图如图3:

LT4356-1浪涌抑制器可保护负载免遭高电压瞬变的损坏。它能够通过控制一个外部N沟道MOSFET的栅极以在过压过程中调节输出。输出被限制在一个安全的数值上,从而允许负载继续运行。LT4356-1还监视VCC和SNS引脚之间的电压降,以防止遭受过流故障的影响。一个内部放大器用于把电流检测电压限制为50mV。

2.2 主控电路

微控制器电路为ARM控制器的可靠稳定工作提供硬件环境,包括ARM控制器的时钟电路、复位电路等部分。复位电路采用上电复位方式,并且备有按键复位操作,方便用户调试使用。

2.3 电平转换电路

电路完成现场485信号与控制器LPC2131之间的电平转换功能。图4是RS-485转换电路。

RS-485转换电路采用485转换芯片ADM2483。

ADM2483是ADI(Analog device,inc)公司推出的基于其专利iCoupler磁隔离技术的隔离型RS-485收发芯片。内部集成了三通道的数字隔离器、带三态输出的差分驱动器和一个带三态输入的RS485差分接收器。节点数可允许多达256个,最高传输速率可达500Kbps。 iCoupler磁隔离技术是ADI公司的一项专利隔离技术,是一种基于芯片尺寸的变压器隔离技术,它采用了高速CMOS工艺和芯片级的变压器技术。所以,在性能、功耗、体积等各方面都有传统光电隔离器件(光耦)无法比拟的优势。ADM2483采用具有短路电流限制的限摆率驱动器,较低摆率降低了不恰当的终端匹配和接头产生的误码。集成的热关断电路可将驱动器输出置为高阻状态,防止过度的功率损耗。

3 软件程序设计

系统上电后,协议转换模块需要系统初始化,初始化操作主要完成系统各个软件模块的准备工作已经相应接口的驱动程序。之后要进行写入指令和写入数据的步骤。

整个软件结构由几个主要的软件的模块组成,分别是main()函数,get_order()函数和exchange()函数。

3.1 main()函数设计说明

该函数为整个软件架构的主函数,在进入主函数之前,由编译器自动加载了硬件的堆栈和中断向量配置文件。当配置完成后,程序自动跳入主函数开始执行。主函数的代码为顺序执行,模块除数据通信功能的其他所有功能都在主函数中实现,图5是主函数的程序流程图。

3.2 get_order()函数设计说明

get_order()函数作用是将异构系统总线收到的数据转换到ModBus发送缓冲区中准备发送给现场的ModBus设备。在转换时要严格按照标准ModBus-RTU格式进行。图6是该函数的程序流程图。

3.3 exchange()函数设计说明

exchange()函数作用与get_order()函数刚好相反,exchange()函数将现场ModBus设备采集到的数据按照异构系统总线协议方式存入到主控制器中。

4 结论

本文通过基于ARM内核的高速微处理器LPC2131的ModBus协议转换模块进行介绍,在此基础上完成了硬件设计与软件搭建,通过编写控制器软件程序实现了现场ModBus设备与异构系统的数据通信和电平转换。实践结果表明,该设计硬件结构简单,运行稳定可靠,软件开发周期短,满足现场设备数据通信以及协议接口驱动的需要。

参考文献:

[1] 蒲靖荣,杜开勋,朱占青,等.基于网络和ModBus协议的远程监控系统[J].自动化仪表,2009,30(7):52-57.

[2] 马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007:290-291.

[3] 李海涛,仪维,吴筱坚,等.PIC单片机应用开发典型模块[M].北京:人民邮电出版社,2007.

[4] 卢颖,钟联炯.以太网交换机运行机制及其仿真研究[J].西安工业学院学报,2004,24(1).

[5] 杨武军.现代通信网概论[M].西安:西安电子科技大学出版社,2004.

接口协议范文第7篇

1 引言

随着信息技术革命的深入和计算机技术的飞速发展,DSP技术也正以极快的速度被应用到科技和国民经济的各信领域。在很多工程开发设计中,由于要求实现单片DSP与单片DSP、多片DSP芯片以及及其它处理芯片之间的通信,因此,怎样更高效、更便捷的实现这些通信,已成为广大DSP应用者首先要解决的一个问题。

本文根据笔者在工程应用和调试方面用TI的DSP TMS320C5402与NEC的μPD780308单片机进行通信的经验,介绍并讨论了将TMS320C5402 DSP的多通道缓冲串行口McBSP(Multi-channel Buffered Serial Port)配置为SPI模式(即时钟停止模式),从而实现DSP与其它单片处理器之间的通信设计方法同时给出了实现方法的部分程序代码。

2 多通道缓冲串行口McBSP

多通道缓冲串行口McBSP的功能是提供器件内外数据的串行交换。同以前的串口相比,McBSP串口具有相当大的灵活性。表1给出了有关TMS320C5402的McBSP管脚说明。其中串口接收、发送时钟和同步帧信号既可由外部设备提供,又可由内部时钟发生器提供,从而大大的提高了通信的灵活性。

表1 TMS320C5402的有关McBSP管脚说明

管脚说明说 明DR数据输入端DX数据输出端CLKR接收数据位时钟CLKX发送数据位时钟FSR接收数据帧时钟FSX发送数据帧时钟CLKS外部提供的采样率发生器时钟源3 SPI协议中的McBSP时钟停止模式

SPI协议是以主从方式工作的,这种模式通常有一个主设备和一个或多个从设备,其接口包括以下四种信号:

(1)串行数据输入(也称为主进从出,或MISO);

(2)串行数据输出(也称为主出从进,或MOSI);

(3)串行移位时钟(也称为SCK);

(4)从使能信号(也称为SS)。

图1为设备的SPI接口示意图。该接口在工作时,主设备通过提供移位时钟和从使能信号来控制信息的流动。从使能信号是一个可选的高低电平,它可以激活从设备(在没有时钟提供的情况下)的串行输入和输出。在没有专门的从使能信号的情况下,主从设备之间的通信则由移位时钟的有无来决定,在这种连接方式下,从设备必须自始至终保持激活状态,而且从设备只能是一个,不能为多个。

TMS320C5402提供的时钟停止模式可用于SPI协议通信,当McBSP被配置为时钟停止模式时,发送器和接收器在内部是同步的,即可将发送数据帧时钟(FSX)用作从使能(即SS),而将发送数据位时钟(CLKX)用作SPI协议中SCK。由于收数据位时钟(CLKR)和接收数据帧时钟(FSR)在内部与FSX和CLKX是相连的,因此,该管脚不能用于SPI模式。

当McBSP被配置为一个主设备时,传送输出信号(BDX)被用作SPI协议的MOSI信号,而接收输入信号(BDR)则被用作MISO信号。图2所示为McBSP用作主设备时的SPI接口示意图。

同样地,当McBSP被配置为一个从设备时,BDX被用作MISO信号,BDR则被用作MOSI信号。图3为McBSP用作从设备的SPI接口示意图。

当TMS320C5402的McBSP被用于时钟停止模式时,寄存器SPCR1的CLKSTP位域和引脚配置寄存器的CLKXP位的配置如表2所列。

表2 时钟停止模式配置

CLKSTPCLKXP说 明

0XX不可用时钟停止模式。时钟被激活用于非SPI模式100时钟开始于上升沿(无延迟)110时钟开始于上升沿(有延迟)101时钟开始于下降沿(无延迟)111时钟开始于下降沿(有延迟)4 其它有关寄存器的配置

为了更好地掌握和了解McBSP作为SPI设备时的有关寄存器配置,现以McBSP作为SPI从设备来介绍有关McBSP的其它有关寄存器的配置,若McBSP做为SPI主设备,则相关配置正好相反。当McBSP作为SPI从设备时,主设备外部产生主时钟。CLKX引脚和FSX引脚必须被设置为输入。由于CLKX引脚和CLKR信号在内部相连接,因而传送和接收回路均由外部主时钟计时(CLKX)。同时,由于FSX引脚和FSR信号也已在内部连接,因此,CLKR引脚和FSR引脚不再需要外部信号的连接。

尽管CLKX信号由主设备外部产生且与McBSP同步,但是,McBSP的采样率发生器仍然必须正确启动SPI从设备,同时,采样率发生器还应被设置为最大速率(CPU时钟速率的一半)。另外,内部采样率时钟常被用来同步McBSP逻辑和外部主时钟以及从使能信号。每次传送时,McBSP一般在从使能信号的上升沿进行FSX输入。也就是说,在每次传送的开始,主设备必须维护使能信号,而在每次传送完成后,则必须消除从使能信号。在两次传送之间,从使能信号不能一直保持为高电平。对正确的SPI从设备而言,McBSP的数据延迟参数必须设置为0,在这种运行模式中,设置值为1或2没有定义。配置McBSP为从设备所需的寄存器位值如表3所列。

表3 SPI操作模式下的寄存器位值表

位 域值功能描述寄存器CLKXM0配置BCLKX引脚为输入PCRCLKSM1由CPU时钟产生的采样率时钟SRGR2CLKGDV1为采样率时钟选择2的划分因素SRGR1FSXM0配置BFSX引脚为输入PCRFSGM0对每个包传送,BFSX信号被激活SRGR2FSXP1配置BFSX引脚为活动低电平PCRXDATDLY0为SPI从设备运行,必须为0XCR2RDATDLY0为SPI从设备运行,必须为0RCR25 程序设计

下面是有关TMS320C5402器件的McBSP各个控制寄存器的配置,该配置程序笔者在实践中已经过测试,并已成功运用在了某工程设计中。

Void McBSP1_Config(void)

{

offlset=0x0000;

SPCR11=0x1800; ;配置串口时钟停止模式CLKSTP=10

offlset=0x0001;SPCR21=0x0222;

offlset=0x0005;

SRGR11=0x00FA;

offlset=0x0007;

SRGR21=0xa00F;

offlset=0x0002;

RCR11=0x0040; ;接收一帧含一字,一字含16位

offlset=0x0003;

RCR21=0x0044; 接收数据无延迟RDATDLY=00

offlset=0x0004;

XCR11=0x0040; ;发送一帧含一字,一字含16位

offlset=0x0005;

XCR21=0x0044; ;发送数据无延迟XDATDLY=00

offlset=0x000E;

PCR1=0x000; ;发送时钟由外部时钟驱动,CLKX为输入脚CLKX=0,发送时钟极性CLKXP=0,发送帧同步极性FSXP=1

offlset=0x0008;

MCR11=0x0001;

offlset=0x0009;

MCR21=0x0001;

offlset=0x000C;

XCERA1=0x0003;

offlset=0x0001;

SPCR21=0x0262;

offlset=0x0001;

SPCR21=0x0263;

offlset=0x0000;

SPCR11=0x1801; ;接收器有效

offlset=0x0001;

SPCR21=0x02e3; ;发送器有效

Return;

}

6 结束语

接口协议范文第8篇

关键词 可配置主机 并行接口 描述

中图分类号:TP3 文献标识码:A

DSP64X具有32条外部引脚接口,通过DSP复位期间对特定的芯片管脚使能,可以配置HPI接口支持16位宽的数据总线和32位宽的数据总线两种模式(文中一律简称为HPI 16模式和HPI 32模式)。不管是HPI 16模式还是HPI 32模式,HPI都是以字传输来实现对DSP存储空间的访问。

1HPI外部接口描述

通过配置,外部HPI信号可以与各种主机部件实现接口。配置HCS 与HDS[1:2] 三个锁存信号的电平,可产生一个低电平有效的内部锁存信号HSTROBE 。HSTROBE 表示内部产生的选通信号,在其下降沿会对主机驱动的输入控制信号HCNTL[1:0],HHWIL,HR/W 进行采样。

2 HPI的寄存器配置

HPI是通过特定的寄存器配置来实现外部主机与CPU之间的通讯的。DSP64X中共有4个寄存器:HPI数据寄存器(HPID)、HPI地址寄存器(HPIA)、HPI控制寄存器(HPIC)、HPI传输请求控制寄存器(TRCTL)。主机能对HPIC、HPIA、HPID三个寄存器进行读/写访问,而CPU能对HPIC、HPIA、TRCTL进行访问。外主机通过访问HPI实现与DSP传输的基本流程为:主机首先通过配置外部引脚到适当的电平,写地址寄存器HPIA,配置主机所要访问的DSP存储空间的地址;然后改变外部控制信号,发出访问主机接口的数据寄存器的命令,主机接口根据命令产生相应请求提交给EDMA控制器。如果EDMA控制器忙,则向HPI发送忙信号,HPI将外部HRDY信号拉高,表示DSP忙,使主机进入等待状态,直到EDMA完成当前操作。如果EDMA 控制器处于空闲状态,将直接响应HPI的请求,并对HPI送来的地址进行译码,送到相应的EDMA通道进行存取。

3HPI的总线访问描述

DSP64X的HPI总线访问可分为HPI 16和HPI 32两种模式。为保证数据正确传输,在任何一个HPI进行传输(包括HPIC、HPIA和HPID寄存器访问)之前,都必须保证HRDY 信号为低电平,否则传输的正确性不能得到保证。

3.1配置为HPI 16模式的总线访问

配置为HPI 16模式传输,在对两个半字访问时,HCNTL[1:0]和HR/W 必须要设定为相同的值。对于第一个半字传输,HHWIL应配置为低电平;而对于第二个半字的传输,HHWIL必须配置高电平。HPI 16模式数据传输包括HAS 信号不使用时读、写操作和HAS 信号使用时的读、写操作4种情况。

3.1.1锁存控制信号

在信号配置时,是否使用HAS 信号,锁存控制信号的方式也不相同。如果HAS 没有使用,并且连接在高电平,则由HSTROBE 的下降沿锁存控制信号;如果使用HAS ,则由HAS 的下降沿锁存控制信号,此时HAS 信号的下降沿必须领先于HSTROBE 信号的下降沿。

3.1.2HPID寄存器的读操作

(1) 固定地址读HPID模式。在一次固定地址读中,当HPI向EDMA发送请求时,此时HRDY 信号应被置高电平,直到被请求的数据被加载如HPID寄存器;在第二个半字读取的时,因为请求数据已经存在于HPID寄存器之中,所以HRDY 信号应为低电平。

(2)自增地址读HPID模式。如果是第一次HPID寄存器读操作,那么在HSTROBE 信号的下降沿之后,HRDY 要被配置为高电平。当第一个数据由EDMA送入内部缓存后,数据应地址自动指向下一个,HPI继续执行连续的数据捕获。当前读操作完成时,如果缓存中已有准备好的数据,HRDY 信号应该在下一次读操作时保持有效,所以在检测到HRDY 有效前,外部主机不能停止读周期。

3.1.3HPID寄存器的写操作

(1)固定地址写HPID模式。在一次固定地址写HPID寄存器操作中,主机要向HPID依次传输2个半字,写访问结束(由HSTROBE 的第二个上升沿标示)后,HPID里的32位数据开始按照HPIA寄存器指定的地址进行传输。因此在检测到HRDY 信号为低电平之前,主机不应该终止一个写周期。

(2)自增地址写HPID模式。自增地址写HPID寄存器的数据应先被写入内部缓存区,直到缓存半满或者写操作结束时,DSP再启动EDMA进行内部传输。此时,由于数据已存在于缓存区,HPID可以立即接收下一个写数据,HRDY 信号会在主机进行下一次写操作时保持有效,所以在检测到HRDY 有效前,外部主机不能停止写周期。

3.1.4HPIC和HPIA寄存器访问操作

为保证数据传输的正确,在配置HPIC或HPIA寄存器时,必须要在HPID寄存器访问状态转换之前完成。

3.2 配置为HPI 32模式的总线访问

接口协议范文第9篇

随着通信网技术的进一步发展,越来越多的互连网设备(如路由器、开关、网关、存取装置)中的串行接口在广域网(Wide Area Network)中被设计成能够支持多种物理接口协议或标准。广域网串行口协议包括RS-232,RS-449,EIA-530,V.35 ,V.36以及X.21等。图1所示是一个简单的串行通信接口示意图。由图可知,实现多协议串口通信的关键是将连接器送来的不同传输方式平衡、非平衡和不同电气信号通过收发器转换为终端能够识别并处理的、具有TTL电平的信号。

1 传统多协议通信的特点和问题

1.1 “子板”方式

广域网串口应用中的通用实现方法是为所需的每一种物理协议提供一个独立的子板。一个支持EIA-232,EIA-449及V.35协议的系统,通常需要三个独立的子板以及三个不同的连接器。这种方法由于每种协议要求配置一块子板,因此系统需要对PCB子板、收发器芯片、连接器等进行管理,这样既浪费资源,又会使管理工作复杂化。

1.2 通用连接器方式

为解决“子板”方式的缺点,可使用一块母板及通用连接器。一个母板上有多种收发器芯片,可以满足多串口协议的要求,并可共用一些通用器件,同时可减少资源的浪费。在配置中,应注意因连接器的管脚较少而带来的问题,较好的办法是根据信号而不是根据协议来分配管脚,即给每一个信号分配一个通用管脚,而不管其物理协议如何定义。如对EIA-232,EIA-449,EIA-530,V.35和V.36来说,其TxD信号可连至连接器相同的管脚。即SDa信号连接到管脚2,SDb信号连接到管脚14。然后利用这对管脚来描述所有协议的发送信号TxD。

这种方法同样也会带来一个问题,即所有收发器的I/O线至通用连接器的管脚必须彼此共用。例如,一个V.28驱动器芯片中的发送数据信号线的接连接器DB-25的管脚2;同时,一个V.11驱动器芯片中的发送数据信号线要接至连接器的管脚2和14;而V.35驱动器芯片中发送数据信号线也会接至连接器的管脚2和14。这样,通用连接器的管脚2将同时接有三根信号线,管脚14接有两根信号线。这样,在这一配置中,所有的驱动器都必须具有三态特性,以禁止不必要的输出。若收发器没有三态特性,则需要使用一个多路复用器来选择相应的输出端。由此带来的另一个问题是收发器在禁止使用时会产生漏电电流。如果选择了V.28协议,其输出电压理论值为15V。此时对于V.11协议的驱动器会被禁用,而处于三态时,其输出漏电电压就必须足够低,才能使得连在同一连接器管脚的V.28协议的驱动器信号不受影响。如果在发送器与接收器之间有隔断开关,则开关也要考虑漏电情况。

1.3 串口的DTE/DCE模式切换

DTE/DCE的切换可通过选择不同的连接器转换电缆来实现,这样,在实现DTE/DCE转换时可最大程度地减小收发器的复杂性,但缺点是需要更换电缆,尤其是设备放置位置不便或DTE/DCE需要频繁切换时这一点尤为突出。

如果保持传输电缆不变,则可将收发器配置为两套以分别支持DTE、DCE方式。而将DTE收发器的驱动器输出与DCE收发器的接收器输入相连,而将接收器输入端与DCE收发器的驱动器输出相连。为了控制DTE或DCE方式,驱动器或接收器的输出必须为三态。当选择为DTE方式时,DCE芯片禁止,其驱动器和接收器处于三态,反之亦然。

该方法虽然解决了对电缆的频繁更换问题,但由于多用了一套收发器而使得设计成本大为提高,且串口板的体积也大了很多。

2 多协议串口通信的实现原理

传统设计中,针对某种协议通常应选择相应的收发芯片,如对于RS-232协议,常用DS-1488/DS-1489、MAX232或SP208等收发器芯片;而对于RS-449协议,则常使用SN75179B、MAX488、MAX490等收发器芯片。当同时使用RS-232、RS-422和V.35协议时,就需要多个收发器芯片来支持不同的协议。

现在,一些收发器的生产厂商研制出了多协议收发器芯片。Sipex是第一家生产出RS-232/ RS-422软件可选择协议芯片SP301的公司。这种芯片可将RS-232和RS-422收发器的电气特性综合到一个芯片中实现。其中SP50X系列产品最多可支持8种协议标准。其它生产厂家如Linear公司生产的LTC154x系列、LTC284x系列芯片也具有以上功能。用户可根据自己的需要选择适当的芯片。

图2为采用分立的收发器芯片与采用一片多协议收发器芯片实现多协议串口通信的通信卡。从图可知,前者实现的复杂度要远远大于后者,具体的性能比较如表1所列。

表1 两种方法实现串口通信的性能比较

分立器件板综合器件板供电电压+5V,-5V,+12V,-12V+5V所需收发器芯片数121支持的物理层协议RS-232,RS-422,RS-449,EIA-530,V.35,V.36RS-232,RS-422,RS-449,RS-485,EIA-530,EIA-530A,V.35,V.36协议选择方式跳线或开关软件或硬件(通过内部译码)串口板大小除了15个收发器芯片外还需其它硬件支持非常小功耗大约1W大约100mW~250mW除此之外,与分立收发器芯片相比,多协议收发器对驱动器使能控制和对输出漏电电流的处理要容易得多。当通过软件或硬件方法选择某一协议时,驱动器和接收器的电气参数将调整至适当的大小,电路内部将自动控制驱动器的输出电平、接收器的输入门限、驱动器和接收器的阻抗值以及每一物理层协议的常用模式范围。

另外,由于外部网络终端对V.35的需求,使得与V.35收发器的连接不能象其它协议那么简单。当使用分立收发器芯片时,常常通过采用昂贵的继电器开关电阻在选择其它协议接口时将V.35网络终端断开,或者要求用户每选择一个新的接口标准就改变一次终端模块,这样既浪费资源又会使接口电路变得复杂,因而不是一种理想的实现方法。而多协议串口芯片则自动提供适当的终端和片上开关来符合V.10、V.11、V.28和V.35电气协议,从而解决了电缆终端转换问题。

3 基于LTC1546/44的多协议通信

为了说明多协议串口芯片的工作原理,现以Linear公司的LTC1546/1544芯片为例进行分析。

3.1 LTC1546/LTC1544的性能

LTC1546芯片是一个3驱动器/3接收器的收发器,其主要特点如下:

带有软件可选的收发器可支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议

可提供片上电缆终端

与LTC1543引脚兼容 与LTC1544配合可完成完整的DTE或DCE

工作在5V单电源

占位面积小。

LTC1544芯片是一个4驱动器/4接收器的收发器,其主要特点有:

软件可选的收发器支持RS232、RS449、EIA530、EIA530A、V.35、V.36和X.21协议

采用LTC1344A作为软件可选的电缆终端

采用LTC1543、LTC1544A或LTC1546可实现完整的DTE或DCE端口

与LTC1543同样工作于5V单电源。

这两种芯片均采用28引线SSOP表面贴封装,图3所示为其引脚排列。

由LTC1546/ LTC1544可组成一套完整的软件可选择DTE或DCE接口,以应用于数据网络、信息业务单元CSU和数据业务单元(DSU)或数据路由器中,它支持多种协议,电缆终端可在片上提供,因此不再需要单独的终端设计。其中,LTC1546每个端口的一半用来产生和适当终止时钟和数据信号。LTC1544则用来产生控制信号及本地环路返回信号(Local Loop-back,LL)。接口协议通过模式选择引脚M0、M1和M2来决定,具体选择方式见表2。

表2 通信协议的模式选择

LTC1546模式名称M2M1M0DCE/DTED1D2D3R1R2R3未用(缺省V.11)0000V.11V.11V.11V.11V.11 RS530A0010V.11V.11ZV.11V.11V.11RS5300100V.11V.11ZV.11V.11V.11X.210110V.11V.11ZV.11V.11V.11V.351000V.35V.35ZV.35V.35V.35RS449/V.361010V.11V.11ZV.11V.11V.11V.28/RS2321100V.28V.28ZV.28V.28V.28无电缆1110ZZZZZZ未用(缺省V.11)0001V.11V.11V.11ZV.11V.11RS530A0011V.11V.11V.11ZV.11V.11RS5300101V.11V.11V.11ZV.11V.11X.210111V.11V.11V.11ZV.11V.11B.351001V.35V.35V.35ZV.35V.35RS449/V.361011V.11V.11V.11ZV.11V.11V.28/RS2321101V.28V.28V.28ZV.28V.28无电缆1111ZZZZZZ由表2可知,如果将端口设置为V.35模式,模式选择引脚应当为M2=1,M1=0,M0=0。此时,对于控制信号,驱动器和接收器将工作在V.28(RS232)模式;而对于时钟和数据信号,驱动器和接收器将工作在V.35模式。

模式选择可通过控制电路或利用跳线将模式引脚接至地或Vcc来实现对引脚M0、M1和M2的控制,也可通过适当的接口电缆插入到连接器上实现外部选择控制。若选用后者,则当移开电缆时,全部模式引脚均不连接,即M0=M1=M2=1,此时LTC1546/ LTC1544进入无电缆模式。在这种模式中,LTC1546/1544的供电电流将下降到500μA以下,并且LTC1546/ LTC1544驱动器输出将被强制进入高阻状态。同时,LTC1546的R2和R3接收器应当分别用103Ω端接,而LTC1546和LTC1544上的其它接收器则应通过30kΩ电阻接到地。

通过DCE/DTE引脚可使能LTC1546中的驱动器3/接收器1、LTC1544中的驱动器3/接收器1和驱动器4/接收器4;LTC1544中的INVERT信号对驱动器4/接收器4起使能作用。可以通过下面两种方法中的一种将LTC1546/LTC1544设置为DTE或DCE工作模式:一种是将专门配有适当极性的连接器接至DTE或DCE端;另一种是通过专用DTE电缆或专用DCE电缆发送信号给LTC1546/LTC1544,同时使用一个连接器构成一种既适合DTE又适合DCE的工作模式。

3.2 典型应用

图4为一个带有DB-25连接器端口并可被设置为DTE或DCE工作模式的多协议串口通信电路,图中LTC1546/LTC1544芯片一边与连接器相连,另一边接至HDLC芯片,M0、M1、M2及DCE/DTE引脚接至EPLD硬件控制电路以实现对通信协议和工作模式的选择。其中DTE或DCE工作模式需要连接对应的电缆以保证正确的信号发送。例如,在DTE模式中,TxD信号通过LTC1546的驱动器1发送到引脚2和14。在DCE模式中,驱动器则将RxD信号发送到引脚2和14。

图4中,LTC1546采用一个内部容性充电泵来满足VDD和VEE。其中,VDD为符合V.28的正电源电压端,该端应连接一只1F的电容到地;VEE为负电源电压端。一个电压倍增器在VDD上将产生大约8V电压,而电压反相器则将在VEE上产生大约-7.5V的电压。四只1μF电容均为表面贴装的钽或陶瓷电容,VEE端的电容最小应为3.3μF。所有电容耐压均应为16V,同时应尽可能放置在LTC1546的附近以减少EMI干扰。

图4 用LTC1546/LTC1544芯片实现多协议串口通信(DTE/DCE可选)

在V.35模式中,LTC1546中的开关S1和S2将导通,同时应连接一个T型网络阻抗,以将接收器的30kΩ输入阻抗与T网络终端并联起来,但不会显著影响总输入阻抗,因此对于用户来说,这种模式下的电路设计与其它模式下完全相同。

由于LTC1546是3驱动器/3接收器的收发器,LTC1546是4驱动器/4接收器的收发器,所以如果同时采用RL、LL和TM信号,则LTC1546/LTC1544就没有足够的驱动器和接收器。因此,可用LTC1545来替换LTC1544。LTC1545为5驱动器/5接收器的收发器,它能够处理多个可选的控制信号,如TM和RL。

所有LTC1546/LTC1544接收器在全部模式下都具有失效保护功能。如果接收器输入浮置或通过一个终端电阻短接在一起,那么,接收器的输出将永远被强制为一个逻辑高电平。

4 结束语

接口协议范文第10篇

关键词: 积木式数据传输 实验平台 串行通信 接口协议

在我们承担的《基于MCU的积木式数据传输实验平台的研究》项目中,要实现一些以MCU为核心的具有不同功能的模块电路——积木块,这些积木块通过各种不同的接口,可以像搭积木一样组合实现各种不同形式的数据传输。

在积木块内部或积木块之间进行串行通信,就得根据具体的需要,事先确定好串行通信接口协议。为方便项目的开发和应用,我们尽量使用标准化的接口协议,如UART,I2C,SPI等。下面笔者就简单介绍MCU应用开发中常用的串行通信接口协议,并结合各接口协议在本项目中的应用进行比较分析和选择。

1. 常用的串行通信协议

(1)UART总线协议

UART的全称是“Universal Asynchronous Receiver/Transmitter”,意为“通用异步收发传输器”,是一种异步收发传输器,是电脑硬件的一部分,广泛应用于MCU应用开发中。UART可以将数据在串行通信与并行通信间进行传输转换,即在MCU内部以字符为单位进行并行处理,而在线路上逐个比特串行传输。UART可用于全双工点对点通信,一条线接收(RX),另一条线发送(TX)。

通常MCU的UART接口不能直接和DTE(Data Terminal Equipment,数据终端设备)设备对接,需要通过电平转换芯片将UART接口的TTL电平转换成RS232C、RS485或RS422的接口电平,然后才能和具有对应接口的DTE设备对接。

由Motorola公司推出的串行通信接口SCI(Serial Communication Interface)是一种UART接口。

(2)I2C总线协议

I2C的全称是“Inter-Integrated Circuit”(在中国一般读作“I方C”,也可写作“IIC”),意为“内部整合电路”,是由PHILIPS公司开发的两线式串行总线,用于连接MCU及其设备。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。每个连接到I2C总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器。I2C使用多主从架构,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏。AVR序列单片机内部集成TWI(Two-wire Serial Interface)总线,是对I2C总线的继承和发展,可以看做一类。

(3)SPI总线协议

SPI的全称是“Serial Peripheral Interface”,意为“串行外设接口”,是Motorola公司首先在其MC68HCXX系列处理器上定义的一种同步串行外设接口,它可以使MCU与各种设备以串行方式进行通信以交换信息。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器上,还有数字信号处理器和数字信号解码器之间。

在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号。

(4)USART总线协议

USART全称是“Universal Synchronous/Asynchronous Receiver/Transmitter”,意为“通用同步/异步收发传输器”,是一个高度灵活的串行通信设备。USART相对UART来说是在异步通信的基础上还有同步的功能,USART能够提供主动时钟。USART可以配置成UART或SPI模式,AVR USART对AVR UART完全兼容。

(5)1-wire总线协议

1-Wire协议是美国Maxim/Dallas公司开发的一种单线总线协议,简称“单总线”。系统由一台主机和若干台从机通过一条线连接而成,主机由此完成对从机的寻址、控制、数据传输甚至供电(当然一条功能线之外还有地线,如需由主机供电,还要有电源线)。1-Wire协议采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源,结构简单,成本低廉,便于总线扩展和维护等诸多优点。

1-Wire协议适用于单个主机系统,控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统操作,而当多个从机位于总线上时,则系统按照多节点系统操作。

主机一般由MCU组成,从机由Maxim/Dallas提供的1-Wire器件构成,每个1-Wire器件内嵌唯一的地址码,以实现主机对不同从机的寻址。主机可通过各种方式联入计算机系统。作为一种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。

(6)USB总线协议

USB全称是“Universal Serial Bus”,意为“通用串行总线”,是1994年底由Intel、Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等七家世界著名的计算机和通信公司共同推出的一种新型接口标准。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。因为USB已经替代并行和串行接口,成为PC的标配,所以MCU与PC之间的连接越来越多地采用USB接口,一般是通过USB转UART电路,将MCU的UART与PC的USB连接起来。

(7)SDIO总线协议

SDIO的全称是“Secure Digital Input and Output”,意为安全数字输入输出,是SD型的扩展接口。SDIO除了可以接SD卡外,还可以接支持SDIO接口的设备,插口的用途不止是插存储卡。支持SDIO接口的PDA、笔记本电脑等都可以连接像GPS接收器、WiFi或蓝牙适配器、调制解调器、局域网适配器、条形码读取器、FM无线电、电视接收器、射频身份认证读取器或者数码相机等采用SD标准接口的设备。

SDIO协议可以支持三种操作模式:SPI、SD一线,SD四线(接口通过寄存器来配置)。SPI速度较低,一线或者四线需要寄存器来选择,高速模式下需要四线支持。

(8)CAN总线协议

CAN的全称为“Controller Area Network”,意为控制器局域网,是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。

CAN总线是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。

(9)GPIO总线协议

GPIO的全称为“General-Purpose Input/Output ports”,意为“通用IO口”,即可以根据使用者的需要将某个接口引脚设置成输入、输出或其他特殊功能。GPIO的功能类似8051的P0~P3。GPIO是一种非常重要的I/O接口,具有使用灵活、可配置性好、硬件代价小等优点。

(10)RJ45 以太网接口协议

10/100 Base-T RJ45接口是常用的以太网接口,支持10兆和100兆自适应的网络连接速度,常见的RJ45接口有两类:用于以太网网卡、路由器以太网接口等的DTE类型,还有用于交换机等的DCE类型。RJ45接口通常用于数据传输,最常见的应用为网卡接口。

RJ45是各种不同接头的一种类型(例如:RJ11也是接头的一种类型,不过它是电话上用的);RJ45头根据线的排序不同分为两种:一种是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕,另一种是绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。因此使用RJ45接头的线也有两种即:直通线、交叉线。

MCU控制板集成或外扩网卡模块后,就能直接接入到计算机网络。

2.各接口协议的比较和选择

(1)本项目中串口通信应用分析

第一,在本项目的应用中,串口通信分为以下三种。

①积木块内部即MCU与器件间的串口通信

对于积木块内部的串口通信,可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO和GPIO等。

②积木块之间的串口通信

对于积木块之间的串口通信,可选用的接口协议有UART、I2C、SPI、USART、SDIO、CAN、GPIO和RJ45等。

③积木块和上位机PC之间串口通信

对于积木块和上位机PC之间串口通信,可选用的接口协议有UART、USB和GPIO等。

第二,在本项目的应用中,串口通信按照拓扑结构可以分为以下三种。

①点对点通信。可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO、CAN、GPIO和RJ45等。

②一主多从通信。可选用的接口协议有I2C、SPI、USART、1-wire、SDIO、CAN和GPIO等。

③多主从通信。可选用的接口协议有I2C、CAN和GPIO等。

(2)本项目中串口通信接口协议的选择

在实现各种功能的积木块时,遵循一条最基本的原则:兼顾积木块实现的通用性和复杂性。即有选择地将某几个功能做到一个积木块上,既减少积木块的复杂性,又增强它的通用性。这样根据需要做出几种通用的积木块,加上相应的器件就能实现相应的某项功能。

具体实现一个积木块还得选择通用性较好的MCU和选定功能的相关器件,这二者是相互影响的。比如器件的接口是SPI的,MCU就应该有相应的SPI接口。反过来,先选定MCU,选择器件时就要注意选择MCU具有的接口类型。

实践证明,通用性好的积木块至少应该具有UART、I2C、SPI和一定数量的GPIO接口。另外,为方便和上位机PC通信,最好有USB接口。

其余接口的实现有三种方式:

①在一些专用的积木块上实现

②在通用性积木块上通过GPIO配置实现

③通过接口转换积木块来实现

总之,在选择串口通信接口协议时,以满足积木块基本功能为目的,适配MCU或器件的接口类型。

参考文献:

[1]赵振德,张建新.单片机原理及实验/实训.西安:西安电子科技大学出版社,2009.

[2]耿仁义.新编微机原理及接口技术.天津:天津大学出版社,2006.

[3]赵宏,王小牛,任学惠.嵌入式系统应用教程.北京:人民邮电出版社,2010.

[4]李群芳,肖看.单片机原理、接口及应用——嵌入式系统技术基础.北京:清华大学出版社,2005.

[5]刘海成.AVR单片机原理及测控工程应用——基于ATmega48/ATmega16.北京:北京航空航天大学出版社,2009.

河北省高等学校科学技术研究项目资助/Supported by science and technology research projects of colleges and universities in Hebei province 编号:Z2010316)

项目名称:基于MCU的积木式数据传输实验平台的研究 项目编号:Z2010316

项目名称:多用途广适配模块化单片机综合开发实验平台 项目编号:Z2010315

上一篇:战略合作框架协议范文 下一篇:房屋买卖协议书范文