时间:2022-05-21 21:43:51
引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇接口协议范例。如需获取更多原创内容,可随时联系我们的客服老师。
关键词:PS/2接口;串行通讯;单片机;键盘;CD4052
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。
关键词:PS/2接口;串行通讯;单片机;键盘;CD4052
1PS/2接口标准的发展过程
随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBMPC/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键盘兼容,只是功能不同而已。
2PS/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.3PS/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)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。
3PS/2接口的嵌入式软件编程方法
PS/2设备主要用于产生同步时钟信号和读写数据。
3.1PS/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.2PS/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口。相应的发送子程序如下:
#defineDATAP00用P0.0做数据线
#defineCLKP01用P0.1做时钟线
#defineINHIBITP02用P0.2做CD4052的INH端
#definePORTRP1用P1口做读入口
#definePORTWP2用P2口做写出口可以实现64个自定义键
voidsend(ucharx)/***functionforsendacharda-ta***/
{
uchari,temp,char_temp;
bitflag_check=1;
INHIBIT=1;//disablestandardkeyboard
delay_ms(3);
temp=x;
for(i=0;i<8;i++)//findthenumberof1inthisucharxisoddornot
{
char_temp=temp&0x01;
if(char_temp==0x01)
{
flag_check=!flag_check;
}
temp=temp>>1;
}
CLK=1;//send1toP1thenreadP1
while(!CLK)//ifCLKislowwait
{
;
}
CLK=1;DATA=1;//send1toP1thenreadP1
if(CLK==1)
{
delay_us(30);//
}
if(CLK==1&&DATA==1)//senddata
{
DATA=0;//startbit0
delay_us(10);
CLK=0;
delay_us(5);//
temp=x;
for(i=0;i<8;i++)//send8bitsLSBfirst
{
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;//sendcheckbit
delay_us(5);
DATA=flag_check;
delay_us(10);
CLK=0;
delay_us(5)
CLK=1;//sendstopbit
delay_us(5);
DATA=1;
delayus10
CLK=0
delay_us(5);
CLK=1;
delay_us(30);
CLK=1;DATA=1;//send1toP1thenreadP1
if(CLK==1&&DATA==0)
{
return;//pcissendingdatatomcu,goto
receivingfunction
}
INHIBIT=0;//enablestandardkeyboard
}
关键词:多路接口; E1; 协议转换; FPGA
中图分类号:TN712-34
文献标识码:A
文章编号:1004-373X(2011)09-0069-04
Design and Implementation of Protocol Converter for Multiple Interfaces and E1
YU Fa-hong1, LIU Wan2, WANG Zhan-feng2
(1. College of Electronic Technology, PLA Information Engineering University, Zhengzhou 450000, China;
2. Northern Institute of Information Technology, Beijing 100072, China)
Abstract: Since the communication bandwidth is widened increasingly, a design of protocol converter based on FPGA and MPC875 for multiple interfaces and E1 is proposed to solve the problem that the low-speed devices can not be connected to high-speed E1 lines. The hardware functional block diagram and the selection method of major components are provided. The dispatching method of multi-interface data, empty timeslot disposal strategy, FPGA structure design and software design flow are elaborated. Through the realization of protocol conversion for RS 232, RS 449, V.35 and E1, this design is proved to be feasible.
Keywords: multi-interface; E1; protocol convertion; FPGA
0 引 言
随着计算机技术与通信技术的持续发展,人们对高带宽需求不断增加,接入DDN(Digital Data Network)网、帧中继网等高速通信网的应用也越来越普遍[1]。E1是我国电信传输网一次群使用的传输标准,速率是2.048 Mb/s。实现多路接口与E1协议的相互转换,将可以把多种设备同时连接至高速的E1线路。本文基于FPGA(Field Programmable Gate Array)、嵌入式微处理器设计了一个多路接口与E1的协议转换器,实现RS 232,RS 449,V.35等接口数据在E1线路上的高速传输。
1 系统原理
1.1 系统描述
多路接口与E1协议转换示意图如图1所示。在发送端,将多路接口数据按照一定顺序合并成一路符合E1协议的数据在E1信道上进行传输,在接收端,将接收到的E1信号再按发送端顺序分成多路接口数据。
图1 多路接口与E1协议转换示意图
1.2 多路接口数据映射到E1帧的方法
E1是一种典型的时分复用结构,一个E1时分复用帧划分为32个相等的时隙,编号为CH0~CH31,其中时隙CH0用作帧同步用,时隙CH16用来传送信令。其余的时隙用来传送有效数据[2]。
通过将不同的接口数据插入不同的数据时隙,把多路接口数据编成一个E1数据帧,实现多路接口与E1的协议转换[3]。
将多路接口数据映射到E1时隙中,需要根据每路接口的速率进行时隙分配,也就是将E1的一个或多个时隙分配给一路接口使用,分配的时隙速率不小于接口速率(每个时隙的速率相当于64 Kb/s),DTE(Data Terminal Equipment)与DCE(Data Communications Equipment)设备端时隙分配设置必须一致。由于协议转换器没有自适应接口速率的功能,因此时隙的分配通过一个软件界面由使用者完成。
为了实现对时隙的分配,设置30个4位的时隙分配寄存器。CPU根据使用者的时隙分配设置,生成30个数据时隙地址并写入对应时隙分配寄存器。数据时隙地址表示的是该数据时隙传送的是哪个接口的数据。在发送端,根据该地址从相应接口读取数据插入对应时隙;在接收端,根据该地址将相应时隙数据送往对应接口。表1为数据时隙地址与接口对应关系表,空闲表示该时隙空置没有使用。
系统将E1时隙分配给多路接口使用,当有时隙没有被分配时,就会产生空时隙。在本设计中,系统可支配的最小单位是E1时隙,也就是说,系统可以将一个数据时隙分配给一路接口使用,也可以将多个数据时隙分配给一路接口使用,当一路接口数据不能完全填满一个或多个时隙时,将会产生半空时隙。比如一个100 Kb/s的接口,占用两个时隙,将会产生28 Kb/s的空时隙[4]。
对于没有使用的空闲时隙,系统可以根据时隙分配寄存器的值识别空闲时隙。在发送端,默认发送全“1”数据,在接收端,抛弃该无用数据;对于一路接口数据不能完全填满一个或多个数据时隙产生的半空时隙,采取循环发空包的方法来填充半空时隙,空包格式固定为“00001111”。在接收端,检测到这样的空包数据,丢弃不用。
下面主要实现V.35,RS 449,RS 232三路接口与E1协议转换的设计[5-6]。通过三路接口与E1协议转换的实现,验证多路接口同时与E1协议转换的可行性。
1.3 系统硬件原理框图与模块功能描述
系统硬件原理框图如图2所示,主要由接口芯片、FPGA、CPLD、微处理器构成。
图2 系统硬件结构原理图
LTC1546/LTC1544:多功能接口芯片LTC1546,LTC1544,二者结合,构成全功能的多协议接口界面,支持RS 232,RS 449,EIA530,EIA530-A,V.35,V.36,X.21协议,协议的选择可完全由软件进行。
MPC875:飞思卡尔MPC875嵌入式CPU,基于POWERPC架构,主频高达133 MHz,8 KB指令cache,8 KB数据cache,总线频率最高可达80 MHz。
EP3C25F324C8: Altera公司的CycloneⅢ系列FPGA,性价比高,资源丰富。
EPM7256AETC144-7:Altera公司MAX7000AE系列CPLD,支持多种接口电平。由于LTC1546,LTC1544接口电平为5 V,FPGA不支持这样的接口电压,这里使用CPLD作接口电路。
XRT82D20:RXAR公司的E1线路接口芯片,支持单路E1,具有HDB3编码、时钟恢复、线路驱动等功能,75 Ω或者120 Ω阻抗匹配。
keyboard:4×4键盘,用来接收时隙分配设置输入。
LED:LED指示灯,共30个,用来指示30个数据时隙的使用情况:当LED灯点亮时,表示该时隙已经使用;LED灯不亮,表示该时隙为空闲。
2 关键模块设计
2.1 与CPU通信FPGA端硬件电路设计[7]
当FPGA与CPU通信时,由于CPU总线特殊的时序关系,FPGA端须做相应的处理才能保证读写数据的稳定性。图3为MPC875读数据总线时序图。其中:CS为片选信号,OE为读信号,A[0:31]为地址信号,D[0:31]为数据信号。图4为MPC875写数据总线时序图,WE为写信号,其余信号与读总线相同。
图3 MPC875读数据总线时序图
当CPU读取FPGA中数据时,先给出地址信号,然后使能片选CS、读信号OE,这时如果数据总线上有数据,CPU读入数据。但MPC875总线频率高达80 MHz,为了CPU能稳定的读取到数据,这里将片选信号与读信号相“与”,然后扩宽3倍得到总线可用信号,在总线可用信号有效期间,数据总线上总有数据,这样,可以保证CPU能稳定的读到数据。
图4 MPC875写数据总线时序图
当CPU写入数据时,CPU先给出地址信号,然后给出片选及写信号,在写信号有效期间,CPU稳定的给出数据。因此,在片选及写信号有效时,锁存数据总线上的数据即可。
2.2 CPLD硬件接口电路设计
CPLD主要完成V.35,RS 449,RS 232数据收发;keyboard,LED控制;FIFO读写等功能。功能框图如图5所示。
图5 CPLD程序功能框图
CPU通过CPLD对接口芯片进行模式选择。V.35,RS 449为同步平衡接口,常用接口速率为N×64 Kb/s(N=1~32)。时钟、数据信号为两线平衡传输,控制信号为不平衡传输。发送数据时,将与之对应的时钟一并输出。在接收数据时,用接口时钟采样数据。
RS 232为不平衡传输。帧格式固定为:1位开始位、8位数据位、结束位。结束位有三种:1位、1.5位、2位。开始位固定为“0”,停止位固定为“1”。通信双方在开始通信前必须约定好串行传输的参数(传输速度、帧格式)。在发送端,首先通过分频产生需要的串行波特率,然后按照帧格式以约定好的速率发送。在接收端,使用8倍于波特率的时钟对接收到的信号进行过采样,经过滤波后如果为低电平信号,即认为是开始位,然后按照约定好的速率接收数据。
在接收数据时,FIFO读写模块将串行接收数据变成8位并行,同时,将与接收数据同步的时钟8分频,用此时钟将8位并行数据写入与该接口对应的FIFO;在发送数据时,将发送时钟8分频,用此时钟从与该接口对应的FIFO读取数据,同时将8位并行数据串行输出。
keyboard为4×4扫描式矩阵键盘,具有16个键。由硬件程序自动扫描键盘,输入数据触发中断,CPU读取数据。LED输出由CPU写入相应的显示寄存器,然后硬件程序将相关信号输出点亮LED。
2.3 FPGA硬件电路设计[8-9]
FPGA主要根据时隙的分配设置,在时钟系统的管理控制下,完成E1的编解帧功能。功能框图如图6所示。
图6 FPGA程序功能框图
CPU根据设置向时隙分配寄存器写入相应的数据。在发送数据时,E1编解帧模块根据时隙分配设置,从相应的FIFO读取数据,写入该时隙。对于没有使用的空时隙,按照空时隙处理办法填入无效数据。发送时钟为FPGA外接的2.048 MHz时钟。由于XRT82D20为数据差分输入,因此将编解帧模块输出的数据TPOS进行反向得到TNEG,平衡输出。TCLK为发送时钟[10]。
在接收时,XRT82D20数据差分输入RPOS,RNEG,将两个信号相减得到输入数据信号,RCLK为时钟输入。在输入时钟的控制下,E1编解帧模块将数据解帧。同时,根据时隙分配设置,将各个时隙的数据送入不同的接口FIFO。
3 软件主程序流程图
MPC875主要完成接口芯片初始化设置、时隙分配设置输入、状态显示等功能。软件主程序流程图如图7所示。
上电以后,CPU进行初始化设置。延迟1 ms进行内存地址分配:每个自定义寄存器及I/O均分配一个内存地址,CPU操作时读写相应地址即可;接着进行LTC1546/LTC1544模式选择,将三组接口分别配置为V.35,RS 449,RS 232;然后查询时隙分配设置输入,如果已经输入时隙分配设置,则读取时隙设置数据,否则,等待时隙设置输入;协议转换器初始化设置完毕,每隔100 ms进行一次线路运行状态告警显示。
图7 软件设计主流程图
4 协议转换器测试
4.1 测试平台搭建
测试平台由JDSU ANT-5 SDH接入测试仪,协议转换器,示意图如图8所示。JDSU ANT-5手持型SDH/PDH传输分析仪,内置所有必要的接口:从T1 Bantam、E1平衡与E1非平衡,到STM-16/OC48光接口;测试速率从1.544 Mb/s~2.5 Gb/s;大屏幕、简单图形化界面、中文菜单,易于使用。
图8 协议转换器测试平台示意图
首先进行时隙分配设置,将1到15时隙分配给V.35接口,17到30时隙分配给RS 449接口,31时隙分配给RS 232接口。由JDSU ANT-5 SDH接入测试仪发出的2 MHz信号,进入协议转换器,然后分别将V.35,RS 449,RS 232接口环回,再将输出的E1信号接入测试仪,在测试仪中测试环回信号的各种特性。
4.2 测试结果
依照上述测试平台进行协议转换器功能测试,测试结果显示,误码率为0,说明协议转换器功能正常。JDSU ANT-5 SDH接入测试仪测试截图如图9所示。其中BER为误码率。
图9 SDH接入测试仪测试结果截图
5 结 语
本文提出了一种多路接口与E1的协议转换设计方法,并具体介绍了时隙分配及调度、空时隙处理等技术难点。通过实现V.35,RS 449,RS 232三路接口与E1的协议转换,证明该方案是可行的。另外,本设计具有良好的扩展性,可以方便的根据具体应用添加或去除接口,也可以在本设计的基础上进行二次开发,完成更多的功能。
参考文献
[1]李伟章.现代通信网概论[M].北京:人民邮电出版社,2003.
[2]刘颖,石战勇,李仲侠.大规模集成电路PCM终端及复接设备[M].北京:人民邮电出版社,1996.
[3]潘长勇,韩冰,杜邓宝.TS流与多路E1协议转换器设计与实现[J].电视技术,2009(4):11-14.
[4]王合川,朱大勇.基于FPGA的多路E1信道的MPEG-2码流传输[J].无线电工程,2007,37(9):10-12.
[5]林进超,罗强,李振卿.E1-V.35协议转换器设计实现[J].中国科技信息,2008(24):62-63.
[6]郝娟,叶志祥.串口通信协议转换器的研制[J].电脑开发与应用,2001,15(1):37-38.
[7]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[8]陈大征,胡建伟.同步流密码机中E1接口的设计与实现[J].电子技术应用,2009(3):138-139.
[9]程,颜永红,帅金晓,等.E1成/解帧器的设计[J].微计算机信息,2009,25(8):83-88.
随着通信网技术的进一步发展,越来越多的互连网设备(如路由器、开关、网关、存取装置)中的串行接口在广域网(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接收器在全部模式下都具有失效保护功能。如果接收器输入浮置或通过一个终端电阻短接在一起,那么,接收器的输出将永远被强制为一个逻辑高电平。
前言
单片机系统中常常需要具备与PC机通信的功能,便于将单片机中的数据传送到PC机中用于统计分析处理;有时又需要将PC机中的数据装入单片机系统中,对单片机程序进行验证和调试。目前常用的通信方式是串行通信,但传输速率太低,以9600bps计算,传输1MB至少需要10min(分钟)以上。并行通信克服了串行通信传输速率低的缺点。标准并行口SPP(Standard Parallel Port)方式实现了由PC机向外设的单向传输,但实现PC机接收外设发送的数据则非常麻烦;而增强型并行口EPP(Enhanced Parallel Port)协议却很好地解决了这一问题,能够实现稳定的高速数据通信。
一、EPP接口协议介绍
EPP协议最初是由Intel、Xircom、Zenith三家公司联合提出的,于1994年在IEEE1284标准中。EPP协议有两个标准:EPP1.7和EPP1.9。与传统并行口Centronics标准利用软件实现握手不同,EPP接口协议通过硬件自动握手,能达到500KB/s~2MB/s的通信速率。
1.EPP引脚定义
EPP引脚定义如表1所列。
表1 EPP接口引脚定义
引脚号SPP信号EPP信号方 向说 明1StrobenWrite输出指示主机是向外设写(低电平)还是从外设读(高电平)2~9Data0~7Data07输入/输出双向数据总线10AckInterrupt输入下降沿向主机申请中断11BusynWait输入低电平表示外设准备好传输数据,高电平表示数传输完成12PaperOut/EndSpare输入空余线13SelectSpare输入空余线14AutofdnDStrb输出数据选通信号,低电平有效15Error/FaultnDStrb输入空余线16InitializeSpare输出初始化信号,低电平有效17Selected PrinternAStrb输出地址数据选通信号,低电平有效18~25GroundGroundGND地线2.EPP接口时序
EPP利用硬件自动握手实现主机与外设之间的高速双向数据传输,软件只须对相应端口寄存器进行读/写操作。
(1)EPP写操作时序如图1所示。
CPU实现向外设写数据的操作步骤如下:
①程序对EPP数据寄存器执行写操作;
②nWrite置低;
③CPU将有效数据送到数据总线上;
④nDStrb(nAStrb)变低(只要nWait为低);
⑤主机等待nWait变高,确认数据发送成功;
⑥主机等待nWait变高,确认数据发送成功;
⑦EPP写周期结束。
(2)EPP读操作时序如图2所示。
CPU实现从外设读数据的操作步骤如下:
①程序对相应EPP端口寄存器执行读操作;
②nDStrb(nAStrb)置低(如果nWait为低);
③主机等待nWait为高,确认数据发送成功;
④主机从并行口引脚读取数据;
⑤nDStrb(nAStrb)置高;
⑥EPP读操作周期结束。
3.EPP端口寄存器
EPP接口除了保留SPP的3个端口寄存器以外,还新增了5个端口寄存器,如表2所列。
表2
地 址端口名称方 向基地址+0SPP数据端口写基地址+1EPP状态端口读基地址+2EPP控制端口写基地址+3EPP地址端口读/写基地址+4EPP地址端口读/写基地址+5EPP数据端口读/写基地口+6未定义(32位传输)读/写基地址+7未定义(32位传输)读/写EPP状态端口寄存器
WAITINTRUSER1USER2USER3××TMOUTWAIT:Wait状态位(1有效);
INTR:中断请求状态位(1有效);
USER1~USER3:用户自定义;
TMOUT:保留(EPP1.7)超时标志位(EPP1.9)。
EPP控制端口寄存器。
××DIRIRQENASTRBINITDSTRBWRITEDIR:方向位(1输入,0输出);
IRQEN:中断使能位(1有效);
ASTRB:地址选通位(0有效);
INIT:初始化(1有效);
DSTRB:数据选通位(0有效);
WRITE:读/写状态位(0:写,1:读)。
读取接口状态和控制接口都只须对相应的端口寄存器进行操作。以初始化为例:
读操作初始化:outportb(port+2,0x24);
//port为SPP数据端口地址
写操作初始化:outportb(port+2,0x04);
//port+2为EPP控制端口地址
4.EPP1.7和EPP1.9
EPP接口最先有EPP1.7标准定义,由于硬件厂商的原因,EPP现有两个标准:EPP1.7和EPP1.9,可以在BIOS/外围设备/并行口(BIOS/Peripheral Setup/Parallel Port Mode)方式中进行设置。两者有如下不同点:
(1)EPP状态端口寄存器的最低位bit0,在EPP1.9中定义为TMOUT。在EPP操作时序中,如果PC机数据(地址)选通信号变低后,且在10μs时间内,外设未能将nWait置为低,则TMOUT置为1,表示延时。
(2)EPP1.9标准中,只有当nWait为低时,才能开始一个操作周期;但在EPP1.7中,无论nWait状态如何,nAstrb(nDstrb)都会被置低,从而开始一个新的数据(地址)操作周期。
二、EPP接口传输数据的一个实例
在某单片机系统中,须要将单片机系统中数据存储器的大量数据传输到PC机中进行分析处理。EPP接口(采用EPP1.7标准)硬件电路及软件流程图如图3~图5所示。
GAL译码电路方程式为/O1=/I1*/I2*/I3*I4*/I5,EPP接口选通地址为2000H。当单片机执行如下指令:
MOV DPTR,#2000H
MOVX @DPTR,A
就将寄存器A中的数据锁存到数据总线上,便于PC机利用EPP接口进行读操作。
C语言例程:
#define SPPDATA 0x0378 //定义各寄存器地址
#define SPPSTAT 0x0379
#define SPPCNTL 0x037A
#define EPPADDR 0x037B
#define EPPDATA 0x037C
#include<stdio.h>
FILE *fp;
Int data;
Long i;
int k;
fp=fopen(filename,"wb"); //打开要存储数据的文件
outportb(SPPCNTL,0x24);
//向控制端口发00100100代码,初始化为读操作模式for(i=0;i<524288;i++)
{
while(!((inportb(SPPSTAT))&0x80))
//查询是否发送完毕
{}
data=inportb(EPPDATA); //读数据
fputc(data,fp); //将数据存入文件
}
fclose(fp); //关闭文件
单片机汇编语言程序为:
FLAG1 BIT P1.7 ;标志位
FLAG2 BIT P3.4
STADD EQU 0000H ;要传输数据段的起始地址
NUM EQU FFFFH ;要传输数据端的字节个数
COMMUN:MOV DPTR,#STADD
COMM1:MOVX A,@DPTR
PUSH DPH
PUSH DPL
MOV DPTR,#EPP_CE
MOVX @DPTR,A
POP DPL
POP DPH
SETB FLAG1 ;将P1.7置高
CLR FLAG2 ;将P3.4置低
JB FLAG1,$;查询P1.7为低,即nDStrb为低,表示PC读操作已完成
SETB FLAG2 ;将P3.4置高
SETB FLAG1 ;将P1.7置高
INC DPTR
CJNE NUM,COMM1 ;循环NUM次
RET
实际应用该接口电路,能实现1MB/s的传输速率,并且性能稳定可靠。
如果应用EPP1.9标准,硬件电路不用变动,软件中可以省略对nWait进行判断的环节,速率能接近2MB/s。
一个好的填充系统是建立在好的接口系统上。设计或发明一个好的接口系统,需要借助一些重要的原则或观念做
引导。我想借一些实验性的探讨与诸位分享这些观念。
先简单介绍几个在开放建筑领域已经建立且运用成功的重要观念。
首先是“辖制原则”(principle of Dominance),这是哈布瑞肯教授(John Habraken)在三十多年前提出
的观念。一个构造物,实体的或非实体的,包含一定的构成元素,其中的元素甲之变动会牵动元素乙,而反之不
然,则元素甲属于上一层级,元素乙属于下一层级;若元素乙之变动也同样会牵动元素甲,则二者皆属于同一层
级。这个原则可以印证在自然的构造物,甚至社会关系的构造上。依据这个原则,可以发现人造环境中存在着许
多有趣的“环境层级”现象,且因文化而变异。例如日本的传统民居中几乎没有“家具”这个层级,而其“隔间”
则如同家具,可以携带并重新装置。
其次,由于环境层级呈现交错连续的包含关系(指空间)及依附关系(指实体),因此,属于上一层级的可
视为“结构体”,而下一层级的便是“填充体”。结构与填充是相对的观念,例如“隔间”对建筑物而言是填充体,
对家具而言则是结构体。身为结构体,具有辖制能力,相对而言较不易变动。身为填充体,虽然受到辖制,但也
相对而言较易变动,因此享有较多的自由。
第三,一个好的结构体应该能容纳许多不同的内容。如何增广多样的填充物,则需要特殊的结构体设计方法。
第一代的开放建筑研究,例如荷兰的SAR组织,在这方面已做出了重要的贡献。另一方面,一个好的填充体系统
应该有相当的弹性应变能力来符合使用需求的变化,这正是“长效建筑”的具体意义。
近半世纪以来,开放建筑在这个课题上已取得了相当可观的成果,但一些新生的挑战也逐渐浮出。在此我提
出一些新的课题,并以一些实验性的例子做为初步的响应。虽然例子多是针对建筑物的室内与家具层级,但所运
用的观念则是普遍的。
课题一:开放界面。接口是连接双方的中间体统称,虽然可以指实物与虚体,但在此只讨论实体的接头(Joint)。
“开放”有两个涵意需要说明。其一是依附在“开放产业化”(open industrialization)的目标上,就是尽量减
少特定且特殊化的设计。俗句“一个萝卜一个坑”式的设计,由于过于“针对”性,不易产业化与市场化,如同“手
工艺”,属于封闭型的产品。另一个含义就是可逆性:界面的两方可合亦可分。在此,我要提出的是一个新的挑战:
即构造物在变动与重组的过程中尽量减少接头本身以及接头双方构件的损耗与破坏。如果因为变动造成大量的损
坏,便称不上弹性,而是暴力,更造成废弃污染,当然也无法支撑“长效”的价值。就此课题我举两个例子。
其一是由我指导的开放接口的理论研究[2] 。就室内一般的门、窗、隔间墙、结构墙、结构柱等现行施作法,
进行了接头的开放性能评量(图1)。总体而言,现行施作是不开放的,不能达到长效的目的,也十分不“环保”。
这个研究指出了构造上的一些新挑战。几乎需要通盘检讨现行的构造思维,并且需要长期的研究努力。
另一个例子是以竹子构造为对象所发明的一种新接头,使其能符合竹子衔接的不同方向、不同数量、不同粗细,
而且在拆解时不破坏竹子本身。竹子只是个试探的对象,重点在于了解开放接头在设计上的挑战及其复杂性(图2)。
课题二:涵通系统。相对于特定与特殊而言,“涵通”(Generic)意味着概括、普及与通用。如果一个实
体构造系统称得上是涵通的话,它应该可以非耗损性地拆解与重组。例如,中国传统的木构造建筑及某些家具都
具有相当高程度的涵通性。进而言之,一个更高级的涵通构造系统应不但能拆解重组,还能组合成新的形式,甚
至可以做出另一种物体。另外, “系统”的概念一般是指有限的元素与元素之间有限的构成关系,它的价值常被
误解成只是为了“大量而一致”的生产效率。然而系统最值得深究的却应当是具有“以少量生产多样”的创造能力。
一致与多样并非鱼与熊掌,在一个好的系统中,是可兼得的。
先介绍一个具有这种涵通效能的家具系统[4] (图3)。这个实验是发明一组构件(有限元素)与接头(有限关系),
使其能做桌子,也能做椅子,还能做柜子,甚至能做出多样的桌子、椅子与柜子。同时这个系统也要有“开放性”,
能与市场上的其他系统配合,创造更多的式样。最后,它还要“友善”,就是用简单的工具与少量的人力便能完成。
另一个要介绍的实验是一般住宅的外墙系统[5] (图4)。外墙是十分重要的填充体,很多时候当内部隔间变
动时,外墙必须相对地应变,否则恐怕连一半的功效都达不到。由于外墙是内外的接口,因此得面对较复杂的处
境,如何适用于几乎无穷多的外墙尺寸是最关键的挑战。如同其他“开放”且“友善”的系统一样,它的元素必
须是少量的,同时在拆解、重组、变化时容易施作,而且无损耗。这个实验中的系统目前仅适用于直交形式的外墙。
研究的结果是以40cm及70cm为基本模数,可生产出9种面板单元,其组合可以符合所有以10cm为单位的外墙
规模。另外设计一组具微调能力的10cm外框,来收纳小于10cm的零碎尺寸。这样的系统几乎可以应付无穷多
的外墙尺寸,当然,外墙填充体与建筑结构体之间的开放接头还需要进一步的双向式构造研究。
课题三:活性系统(live system)。“活性”是个新生的观念,一方面是指系统中的构件可以是任意的形体
与尺寸;另一个用意是将一个构造物视为一次构件间的“偶遇”,缘起则结合,缘灭则各自分散,而且是好聚好散。
系统中的每个构件与接头又还原成自主的独立元素,等待参与另一次的构造机缘。活性系统的实验缘起于一次我
个人关于“非开放建筑困境” 的体验。如同许多购屋者(无论新屋或旧屋)的处境一样,由于原有空间的形式与
材质皆不满足新主人的需要,不得已而进行摧毁性的整建。经过无奈而残暴的拆解过程后,我只保留了前屋主的
许多大小尺寸皆不同的木质抽屉,准备再利用,因此,所面临的技术性挑战是如何设计一个结构体来涵容许多不
同的填充体(抽屉)。这是典型的开放设计问题,而其方法早在四十年前即已发展了。这次,我自找麻烦地又加
了两项要求使得这些柜子是个“活物”:其一,结构体的元素必须维持涵通的性质;其二,开放接头。我与学生
们实验的结果是以木片与横杆作为垂直支撑与水平支撑的涵通元素,开放接头则是C 形铁夹与钢索,柜子的结构
体是个开放的接口系统,整合了各种不同尺寸的抽屉(图5)。
另一个例子是有关活性系统中的整合接口,并非结构体,而是填充元素[6] 。这个小实验是发明一组“木砖”,
其尺寸能配合既有的红砖与水泥砖,做出各种组合构造(图6)。
虽然所介绍的只是些尝试性的构想,却紧扣着开放建筑的核心,也发掘出一些潜藏的观念与新的课题。另外
值得一提的是这些实验的共通特点,就是所有的设计都没有特定的对象物,因而进入了“后设”设计(meta-design)
的方法论探讨,或许今后可以来分享这方面的研究成果。
最后,我的自我叮咛是:虽然人类的文明曾经创造了许多优美动人且有效的人造物品及人造物体系,而在过
去的半个世纪,开放建筑揭示了接近革命性的主题――如果我们希望能迈向更有智慧的人造环境,我们几乎必须
“重想”建筑。
参考文献
[1] Habraken, N. John. The Structure of the Ordinary. MIT Press. Cambridge, 1998.
[2] 林丽珠. 开放式接口之建筑构造理论. 台立成功大学博士论文,台南,2002.
[3] 黄伟城. 开放构造之接口设计. 台立成功大学硕士论文,台南,2005.
[4] 黄正宏. 实体系统之涵容性设计方法试探:以家具系统为例. 台立成功大学硕士论文,台南,1997.
“写了好多位芭蕾舞大师,”一时间,我感觉自己的舌头仿佛化作了舞鞋,在那些名字间跳跃:鲁道夫・纽瑞耶夫、玛格・芳登、埃里克・布鲁恩……最后,停在汤姆身前:“但我最喜欢老鞋匠汤姆的故事,他手工制作的舞鞋举世无双,舞迷们甚至去戏院后面的垃圾箱翻抢被穿坏的舞鞋,他根据脚的草图就能判断出脚所经历的人生,他――”。
“哦!”他不感兴趣地将书放下。
戴维・洛奇指责媒体人的声音一时间在我耳畔响起:“我们为创造一个想象的世界所奉献的艺术,所付出的心血,都被这些人糟蹋了,他们只关心细枝末节的事实!”(《作者,作者》)唉,抱歉了科伦・麦凯恩!你小说中所展现的诗意语言和叙事技巧,也被我“糟蹋”了――我不该只关注鞋而忽略“脚尖上的悲喜人生”!
若用一条线索,将自己从小到大读过的书穿连起来,编出一部个人阅读史,我会毫不犹豫地选用――嗯,一根鞋带!作为一名“鞋控”,我的阅读眼界就是这样“低”,“低到尘埃里”:在我看来,读书就是寻宝,宝就是一双鞋,而鞋就是一道窄门,引我从低处走进广阔的文学世界。
阅读《红楼梦》,以鞋为索引。起先,目光追随着大观园里小姐们的莲步轻移,可只在“琉璃世界白雪红梅”一章,看清过黛玉穿着掐金挖云红香羊皮小靴,湘云穿着鹿皮小靴,余下的时间里她们的鞋均藏在裙裾下,养在深闺不给人识。
倒是对宝玉穿的鞋子,作者常给一笔细致的描述:初见黛玉时,宝玉穿着“锦边弹墨袜,厚底大红鞋”;夜访潇湘馆时,他趿的是“蝴蝶落花鞋”;雪中赏梅时,他披蓑戴笠,登着一双“沙塘屐”……哪个贴身丫鬟为他搭配的呀?有品味!看到小说结尾,已是出家人打扮的宝玉道别父亲,赤着脚,归隐于白茫茫一片旷野时,我曾想:如果说黛玉的命运是“质本洁来还洁去”,那宝玉的命运就是“足本赤来还赤去”――人生莫不就是如此?!
读懂鲁迅先生,从“一只小鞋”开始:小说《祝福》中,众人寻找祥林嫂丢失的儿子阿毛寻到山里,看见“刺柴上挂着他的一只小鞋”,知他遭了狼。那只小鞋挂在我的记忆里好多年,由此懂得了:最弱微的细节,能向吃人的封建礼教发出最有力的抗议和控诉!
喜欢上海子的诗,同样缘于“一双白鞋子”。在最早为海子带来广泛声誉的《亚洲铜》中,鞋子镶嵌在我最爱的诗句间――“看见了吗?那两只白鸽子,它是屈原遗落在沙滩上的白鞋子/让我们――我们和河流一起,穿上它吧”,穿上了海子的“白鞋子”,我行遍了厚厚的《海子诗全编》,串串足迹穿起来的,是我对诗人海子由衷的敬慕和礼赞。
专注“读鞋”好多年的我,任自己赤足的目光,去书里寻找一双合脚的鞋,寻来寻去发现:每一双鞋,都是一段人生的结论。
帮我读懂青春的,是鞋子。少女时代的成长路上,始终与三毛为伴,从《撒哈拉的故事》开始,那些如骆驼脚印般延展到时光深处的三毛作品,是我测量人生的标尺,世界的广度、人性的深度和爱情的亮度,都经由一部部、一步步地被测算出来。三毛如此,我亦如此:“社会的繁华复杂,人生的变化、欢乐和苦痛都是小说里去看来的,我的生活,就像那双球鞋似的一片雪白”(《赤足天使――鞋子的故事》)。
我从不喜欢穿高跟鞋,却喜欢穿凉鞋,不是因为《格调》一书指出:“名牌牛仔裤配极高的高跟鞋”,是刚搬到郊区的上层贫民女孩的搭配,而是以鞋子来决定心情的宁静与舒泰的三毛,曾这样赞美过凉鞋:“这样的东西踩在脚下,一个人的尊严和自由才真正流露了出来”,穿着“几根带子绑在脚上”的凉鞋,三毛行遍了世界,而我通过穿起凉鞋,体味那种“人生自然的态度,生命的享受,简简单单的脚下释放”,进而读懂的青春。
通过鞋子,我理解了婚姻。小时候读格林兄弟的童话故事《灰姑娘》时,最难忘的是:那双“光亮的丝质舞鞋”,穿在灰姑娘脚上,“就像专门为她做的一样”,而两个继姐妹,又得切脚趾又得削脚跟才能穿上它……长大后才明白:格林兄弟是用舞鞋来教导年轻的姑娘们,婚姻如一双鞋,适合你脚的才是完美。因此,关于婚姻这件事:“所有的经验之谈都无济于事,你只需在半夜时分,倾听你脚的感觉”(毕淑敏)。
在《东京日和》一书中,摄影师荒木经惟与妻子阳子,用鞋子来表达爱:阳子将她与荒木的跑鞋并排放在一起,将鞋带系在一起。可是系紧的鞋带,仍抵不住死神的镰刀,阳子往生后,荒木拍摄如同废墟一般的家,仍“把阳子和我的鞋摆在一起拍”,这一次,两只鞋一前一后,仿佛阴阳相隔。在一个东京日和的好天气,荒木终于决定出去走走,把拍出来的相片献给阳子,穿什么鞋呢?荒木想:“运动便鞋不行,一定得穿上锃光瓦亮的皮鞋”时,那份沉默的爱意让我的眼泪瞬间而至……
乙方:_________
根据《中华人民共和国合同法》及其他相关法律、法规之规定,在平等、自愿、协商一致基础上,就乙方委托甲方安排进出口货运事宜相关费用的结算达成协议如下:
第一条 相关定义
1.费用结算单:指甲方为结算需要,向乙方出具的,载明应付费用及支付期限的任何形式的书面材料。
2.书面确认:指乙方及其分支机构或授权人员盖章或签字之任何形式的书面材料。
第二条 操作
乙方委托甲方从事下述服务。
1.在签发第三方的运输单证的情况下,作为乙方的货运人,为乙方向承运人或其人订舱,排载,制作单证,依据乙方的具体指示(参照每票托运单),从事拖车、场装报关、报检等,并代缴有关费用。
2.在甲方签发自己的运输单证时,向实际承运人订舱、向乙方签发运输单证,并根据乙方的指示(参照具体托运单)提取货柜、拖车、场装、报关、报检、并代缴相关费用。
3.办理进口货物货运业务(参照委托单证或相关单证)。
第三条 结算
甲方选择_________方式向乙方结算相关费用。
1.票结
1.1 乙方在委托甲方操作开始前,将空白支票或现金交给甲方,甲方必须出具收据。
1.2 甲方在每票货操作完毕后,从该支票或现金直接支取费用。
1.3 乙方支票空头或透支或预缴现金不足,应在甲方通知后立即补齐,并按逾期时间支付违约金。
1.4 非因甲方原因产生之超出结算期限的未结费用,乙方应于甲方通知后立即支付,并按逾期时间支付违约金。
1.5 甲方应于结算后立即出具发票给乙方。
2.月结
2.1 甲方于次月_________日之前提供前一个月的费用结算清单给乙方核对(乙方也可随时向甲方索要)。
2.2 乙方必须于_________日前对之进行核对,并以书面形式向甲方确认或异议,否则视为同意。
2.3 乙方对甲方出具的费用结算清单全部或部分有异议的,应于_________日前,就确认或没有异议的部分按时支付,不得拒付全部费用。
2.4 对于乙方有异议的全部或部分费用,甲方应立即与乙方协商,并于乙方书面异议的一周内重新制作费用结算清单给乙方。该新费用结算清单的交接,适用本第2款,第2.2项的规定。
2.5 对于上述应付费用,乙方若需要由本合同以外的第三人支付给甲方的,必须书面通知甲方,并对该应付款承担连带清偿责任。
2.6 甲方对乙方所付费用,应立即开具发票或收据给乙方。
2.7 甲方在代垫金额较大的情况下,有权要求乙方先行支付代垫费用。定期结算期内代垫费用的最高限额为,超出限额乙方必须先行支付甲方代垫的费用。
2.8 甲方保有应收费用的增补权。双方在结算后,发现尚有部分应计算的费用未结算的,甲方有权予以增补,乙方应在下一结算期间结清。乙方保有多付不应付费用的追索权,多付金额经双方确认后在下一个结算期抵扣。
第四条 担保措施
1.乙方同意,在其未能依本协议第二条,第三条规定支付甲方有关费用时,甲方有权留置其所占有的乙方本协议项下的标的货物。
2.乙方应于不少于两个月的期限内履行支付义务。该期限从甲方采取留置措施时开始计算。乙方逾期不履行的,甲方得以将留置物拍卖,变卖或与乙方协议折价,以其价款优先偿付甲方费用。留置物折价,拍卖,变卖后,其价款仍不足以偿付的,不足部分由甲方清偿。
3.乙方同意,在乙方结清相关费用后,甲方方将报关单证或退税核销单或提单等交给乙方,由此造成的任何损失乙方承担。
第五条 违约责任
1.乙方未依本协议向甲方支付费用,或支付费用不完整的,乙方必须从支付期满日起,按应付款向甲方每日支付违约金。
2.乙方无正当理由_________天不履行某一个月的全部费用或所欠费用超过全部应付费用的时,甲方可以解除协议并按上款要求违约金。
3.甲乙双方违反本协议造成对方损失的,按违约时的实际损失赔偿对方。
第六条 争议解决
1.本协议不尽之处,由双方协商解决或作补充商议。
2.双方协商不成的,一方可以向人民法院起诉。
第七条 协议的变更和解除
1.双方可以通过协议方式变更或解除本协议,但必须提前30天书面通知对方,并经对方书面同意。
2.除第六条第2款的情形外,任何一方依上款方式单方解除本协议,必须支付给对方人民币_________元违约金。
第八条 其他
1.本协议期限从_________至_________止。
2.本协议期满,双方无异议的,自动延续壹年。
3.本协议一式两份,效力相同,双方各持一份,自签订日起生效。
第九条 其他双方协议的条款_________。
甲方(盖章):_________乙方(盖章):_________
据悉,双方为本次品牌战略合作将投入价值数亿元的资源,不仅包括9.9亿瓶可口可乐旗下饮品、近9.9亿张易迅现金券、27000台限量版可口可乐三星订制版智能手机,以及活动期间每天超过5万件低至3折商品,还囊括了海量的腾讯增值服务商品。
事实上,早在去年9月份,易迅就已与可口可乐开展过浅层次的合作。当时,易迅曾联合可口可乐推出了下单就送可口可乐圣诞礼花瓶的活动,并取得了很好的口碑。
记者了解到,正是基于上述良好的关系,本次双方才决定将合作上升到战略层面,共同投入资源打造这次持续90天的“午后畅爽秒杀大奖”的活动。
另一方面,易迅与可口可乐两大品牌定位的相似性也是原因之一。据悉,易迅的消费群体大多是爱好3C数码产品的年轻男性,物流主打“闪电送”的快节奏。可口可乐的品牌形象近几年也日益年轻化,2013年推出的“小萝莉”等卖萌新装成功讨好了中国年轻一代消费者,因此,两家公司倡导的这些理念均符合当下年轻族群的生活态度。