EDN首页   博客首页

最新日志

发表于:2007-8-30 14:38:26
标签:杨氏碎步  

0

震撼一国的农夫

 
每年,澳大利亚都会举行一场悉尼至墨尔本的耐力长跑,全程875公里,被认为是世界上赛程最长、最严酷的超级马拉松。这项漫长、严酷的赛跑耗时五天,参赛者通常都是受过特殊训练的世界级选手。这些选手大多不到三十岁,有“耐克”等知名运动品牌做后盾,全副武装着最昂贵的赞助训练装备和跑鞋。
    1983年,耐力长跑赛场上,出现了一个名叫克里夫·杨的家伙。起初,谁也没在意他,大家都以为他是去那儿看比赛的。毕竟,克里夫·杨已经61岁了,穿着条工装裤,跑鞋外面套了双橡胶靴。
    当克里夫·杨上前领取他的运动员号码时,人们这才明白原来他是来参赛的。他将跻身150名世界级选手的行列参加赛跑!这些选手压根儿没想到,还有一件令人称奇的事,克里夫惟一的教练竟是他81岁高龄的母亲耐威尔·冉。
    人人都认为克里夫·杨不过是个头脑发热,想在公众面前出彩的家伙。但媒体却颇感好奇,当克里夫拿到他的“64号”号码布,走进那群身着专业、昂贵长跑行头的运动员中时,照相机镜头对准了他,记者们开始发问:
    “你是谁?是做什么的?”
    “我是克里夫·杨。来自一个很大的农场,在墨尔本郊外放羊。”
    他们又问:“你真的要参赛吗?”
    “是的,”克里夫点点头。
    “有人赞助你吗?”
    “没有。”
    “那你不能参赛。”
     “不,我可以,”克里夫·杨说,“你知道吗,我出生在一个农场,家里买不起马匹和四轮车。每次暴风雨快来的时候,我都得跑出去聚拢羊群。我们有2000头羊,2000英亩地。有时候我得追着羊群跑两三天。虽然费功夫,但我总能追上它们。我相信我能跑这场比赛,不过五天时间,也就多出两天而已。我追着羊群跑过三天。”
    马拉松开始了,穿着套鞋的克里夫·杨被专业选手们甩在了后面。观众席上发出阵阵笑声,因为他甚至不懂得正确的跑姿。他好像不是在赛跑,而是优哉游哉,像个业余选手那样拖着碎步小跑。
    现在,这位来自碧奇榉林、以种马铃薯为生的没牙农夫开始在这场艰苦卓绝的赛跑中跟世界顶尖选手展开较量。全澳大利亚通过电视直播收看比赛的人们都在心中不住祈祷,赶紧有人把这个疯老头儿从场上劝下来,因为人人都相信:不等跨越半个悉尼,他就会累得气绝身亡。
    所有专业选手都很清楚,为了拼完这场耗时5天的比赛,你得跑18小时,休息6小时。可现在,老头儿克里夫·杨竟然对此一无所知!
清晨,当有关赛况的新闻播报出来时,又着实让人们吃了一惊。克里夫·杨仍在比赛,迈着碎步跑了一整夜,来到了一座名为米塔岗的城市。
    显然,克里夫·杨从比赛第一天起就没有停过脚步。尽管还被远远甩在世界级选手后面,但他还是不停地跑着。他甚至还有功夫跟公路两旁观看比赛的观众挥手致意。
当他到达一个名为奥尔伯里的小镇时,有人问他剩余的比赛有什么策略。他回答要坚持跑完比赛,他做到了。
    他不停地跑着。每天晚上,他只能与领先的第一团队拉近一丁点距离。到最后一晚,他超过了所有顶尖选手。到最后一天,他已经跑在了最前面。他以61岁的高龄跑完了悉尼至墨尔本的整个赛程,不仅没有一命呜呼,还捧走了冠军奖杯,以提前9小时的成绩打破了记录,成了国家英雄!举国上下的人们立刻爱上了这个种植马铃薯的61岁农夫,因为他以5天15时4分的成绩跑完了这场长达875公里的比赛,成功地击败了世界上最优秀的长跑运动员。而他并不知道比赛当中允许睡觉。他说,自始至终想像自己是在追逐羊群,与一场即将来袭的暴风雨争抢时间。
    1997年,76岁的克里夫·杨再露头角,力图成为年龄最大的环澳长跑选手,为无家可归的儿童募集资金。整个赛程16000公里,他跑完了6520公里,后来因母亲生病而被迫退出了比赛。
    他对长跑的热爱从未消减,2000年,他在一项1600公里比赛中跑完了921公里,一星期后在他盖里布兰德的家中病倒,从此再也没有力气跑了。轻度中风结束了他英雄般的长跑生涯。
    2003年11月2日,久病之后的克里夫·杨这位长跑运动史上的传奇人物与世长辞。享年81岁。
    “杨氏碎步”因被认为更符合空气动力学、更省力而被超级马拉松选手纷纷效法。据悉,悉尼-墨尔本长跑优胜者中至少有3名是凭“杨氏碎步”取胜的。   
 如今,悉尼-墨尔本马拉松赛中几乎没有人睡觉了。要赢得这场比赛,你必须像克里夫·杨那样,日夜不停地奔跑。或许要跑赢人生的马拉松赛,也正需要克里夫·杨的精神———打破常规、拼搏不息。

系统分类: 自由话题   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(262)
发表于:2007-1-26 20:17:30
标签:无标签

2

基于USB的通用无线传输接口设计

基于USB的通用无线传输接口设计

 

来源:单片机及嵌入式系统应用  作者:武汉理工大学 任晖

 

摘  要:介绍一种基于Philips公司的32位ARM7T[)MI—s微处理器LPC2210的USB接口设计,并使用Nordic公司生产的单片射频收发芯片nRF2401设计USB接口的无线通信模块。阐述该系统的工作原理、硬件构成及软件设计方案。实现了基于USB接口的无线串行通信。
关键词:无线传输 LPC2210 USB nRF2401 CY7C63231


引 言
    USB通用串行总线主要用于USB设备与主机之间的数据通信,特别为USB设备与USB主机之间大量的数据传输提供了高速、可靠的传输协议。射频通信以其优点也应用在越来越多的场合。本文所设计的USB无线串行接口电路由nRF2401单片射频收发器、LPC2210微控制器和USB接口芯片组成。本系统充分利用USB口数据传输功能,设备连接方便,系统可用于进行无线串行数据双向传输,在仪器仪表、计算机遥测遥控系统、家庭网络系统等中得到了应用。


1 硬件设计
    整个硬件设计分为两个部分:使用带并行总线的USB接口器件PDIUSBD12设计LPC2200的USB接口,其电路图如图1所示;使用Cypress公司的USB外围控制芯片CY7C63231设计射频芯片nRF2401的USB接口,其电路图如图2所示。两个部分通过USB口相接,整个硬件设计系统框图如图3所示。

点击看大图

点击看大图

点击看大图


    图1中,USB接口芯片采用的是Philips公司的并行USB接口芯片PDlUSBD12,符合通用串行总线(USB)1.1版本规范。这里以LPC2200微控制器与PDIUSBI)12构成USB设备,PDIUSBD)12连接到LPC2200的硬件原理图如图1所示。

    PDIUSBD12使用LPC2200外部存储控制的Bank2部分,数据地址为0x82000000,命令地址为Ox82000001。RST_USB、SUSP为LPC2200的输出引脚,PDIUSBD)12中断信号为中断输入信号,且为外部中断O。C1、C2和X1为PDIUSBD)12提供工作所需的时钟输入。发光二极管GoodLink在正常通信时闪烁。PDIUSBD12的AD0连接到LPC2200的A0,当LPC2200在A0引脚输出l时,表示输出到PDIUSBD12数据总线DO~D7上的数据为命令字;当A0引脚输出0时,表示输出到PDIUSBD)12数据总线DO~D7的数据为数据字。


    图2中,CY7C63231是8位RISC微处理器,特别适用在USB嵌入式方面,工作电压为5 V。nRF2401是单片射频收发芯片,有四种工作模式:收发模式、配置模式、空闲模式和关机模式。所有配置工作,工作模式选择和收发数据都是通过CY7C63231的PO引脚控制完成的。用电压调整芯片LP2980IM5—3.3产生nRF2401的工作电压(3.3 V),同时SN74LVC4245产生控制口3.3 V和5 V的电平转换,使工作在不同电压的这两种芯片能正常的相连。


2  软件设计
2.1  PDIUSBDl2驱动软件构架

    为了使驱动软件可移植性强、易维护,采用分层的方法编写PDIUSBDl2的驱动程序,图4为USB驱动程序软件分层结构图。


    USB驱动程序软件包提供给用户6个API函数,这6个函数都在USB应用层中定义,功能描述如表1所列。

点击看大图


    下面以接收和发送数据任务为例,演示了一个任务从端点2发送1024个字节。部分源代码如下:
#define RW_NUMS 1024 //任务收发数据字节数
void TaskRecl(void*pdata)
{#if OS_CRlTICAL_METHOD==3
//为CPU状态寄存器分配存储空间
OS_CPU_SR cpu_sr;
#endif
INT8U Buff[RW_NUMS]; //接收及发送缓冲区
INT8U ack="0x01"; //应答主机数值
INT8U err; //函数返回值
pdata=pdata; //避免编译器警告
for(;;){
OSSemPend(TaskReel_Sere,0,&-err);//等待TaskStart的命令
err=WritePortl(1,&ack,200); //应答USB主机
if(err==USB_NO_ERR){ //应答正确
err=ReadPort2(RW_NUMS,Buff,200);//接收数据
OSTimeDly(1); //延时一个时钟周期
if(err==USB_NO_ERR){ //接收正确
Buff[0]=OSPrioCur; //标识该任务
err=WritePort2(RW_NUMS,Buff,200);//发送数据
}
}
}}

2.2 CY7063231软件设计
    USB外围控制器CY7C63231控制nRF2401射频芯片,同时与LPC2210微控制器的USB口相连,实现无线数据的接收和发送。下面以接收无线数据为例。主程序UsbTaskLoop,它是一个无限循环,仅仅在中断的时候跳出。程序检测nRF2401的DRl和DR2引脚,当DRl上的电平为高时,产生中断跳到Receivechl子程序,当DR2
上的电平为高时,产生中断跳到Receivech2子程序。USBSend程序负责从端口1向上位机发送数据,WaitforAck程序等待上位机对端口1的应答信号,Receivechl和Receivech2程序分别从nRF2401的通道1和通道2接收数据。最后调用DATAOUT把数据传给上位机,然后调用WaitforAck。Prg2401程序段负责对nRF2401进行操作控制,能够通过设置不同的参数使nRF2401工作在三种不同的工作模式。


结  语
    本系统采用32位嵌入式微处理器进行核心控制,具有强大的数据处理能力。该设计可以通过无线局域网进行无线传输,并且可在ARM中对无线接收的数据进行处理,以进一步应用于图像处理,智能监控,以及远程电视电话会议等。因此,基于ARM的嵌入式USB口无线接收处理系统具有广阔的应用前景和市场。

系统分类: 嵌入式   |    用户分类:    |    来源: 整理

评论(0) | 阅读(723)
发表于:2007-1-26 20:14:12
标签:无标签

1

嵌入式U盘读写器接口技术和系统设计

嵌入式U盘读写器接口技术和系统设计

来源:E代电子  作者:桂林电子科技大学 张峰峰 潘明 韦海旋 贾转红

引言

    随着USB技术和闪存技术的飞速发展,移动存储设备的速度和容量日新月异,但在工业控制的上位机和下位机之间,数据传输依然采用传统的串并口技术,特别对一些前端的便携式采集系统,需要采集后临时存储,再拿回来传给作为上位机的PC机进行数据处理,给人们带来很多不变,为此,本文提出了一种方法--利用U盘的便捷特性开发一种基于嵌入式的USB读写器,方便地将采集数据以文件方式写入U盘,PC机不需要任何特殊驱动便可以完成对数据的处理回放。利用本方法可以彻底解决下位机与PC机之间的数据传输难的问题。

1 硬件设计

    系统采用TI公司的MSP430F149作为MCU,Cypress公司的SL811HS作为USB设备控制器,充分发挥各自优势满足低功耗要求。

1.1 MSP430

    TI公司的 MSP430系列单片机是一种超低功耗的混合信号控制器,针对不同的应用而由各种不同的模块组成,这些微控制器可用电池工作,且使用的时间很长,MSP430单片机具有16位RISC结构,CPU中的16个寄存器和常数发生器使其能达到最高的代码效率,灵活的时钟源可以使器件的功率消耗最低,数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在短于6μs的时间内激活到活跃的工作方式,非常的内/外设和I/O端口资源,端口P1和P2支持中断唤醒。

1.2 SL811HS

    Cypress公司的SL811HS是一款超低功耗的USB主/从设备控制器,主设备或从设备模式由软件控制,USB主/从设备控制器支持全高速和低速数据传输,内部256字节的SRAM缓存,访问时地址自动加1,可大大缩短读写指令周期,具有标准的8位双向微处理器总线接口,其中从设备模式下支持DMA。

1.3 硬件系统框图


    USB读写器结构框图如图1所示,主要由MSP430F149和SL811HS构成,MSP430支持串口输入和14位的并口输入,P2.7用作中断唤醒位,P2.6用作标准位区分数据和命令,通过P4口向SL811发送控制信号,P6用作普通的双向总线接口与SL811进行数据交换,P1.1支持中断唤醒接收SL811的中断请求。

2 软件设计

    为了使上位PC机能够直接读取该读写器写入U盘的数据,数据存储按照FAT32文件管理方式存储,其中涉及USB和UFI协议以及FAT32文件存储格式。

2.1 USB协议

    USB(通用串行总线)用于将USB接口的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构,是一种快速、灵活的总线接口,USB的传输类型有控制(control)、批量(bulk)、中断(interrupt)和同步(synchronous)传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。

    控制数据用于在USB接入总线时对其进行配置,其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丢失数据。

    典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作,可以在硬件层次上保证数据的可靠交换。

    由设备自发产生的数据传输是中断数据传输,这类数据传输可以由USB设备在任意时刻发起,而且USB总线以不低于设备说明的速率进行传输。

    同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。

2.2 BULK_ONLY和UFI协议

    USB设备分为5大类,即显示器、通信设备、音频设备、人机输入和海量存储。通常所用的U盘、移动硬盘均属于海量存储类。海量存储类的规范中包括4个独立的子规范,即CBI传输、Bulk-Only传输、ATA命令块、UFI命令规范。前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/状态,CBI传输协议则使用Control/bulk/interrupt三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFI协议则针对USB移动存储,U盘读写器的设计遵循Bulk-Only传输协议和UFI命令规范。UFI命令块规范是针对USB移动存储而制定的,它总共定义了19个12字节长度的操作命令。

    Bulk-Only事务以主机向设备发送CBW(Command Block Warp)包,并以建立相应的数据传输开始的,设备接收到CBW包,检查并解释它,试图满足主机的要求,并通过CSW(Command State Wrap)包向主机返回状态信息。

    CBW是主机通过Bulk-Out端点向设备发送的命令块包,在CBW中使用方向位和数据传输长度域指明期待的传输,CBW必须起始于包边界,并且必须以31字节的短包传输结束,相继的数据包和CSW包必须开始于一个新的包边界,所有的CBW包必须按低字节在前的次序传输。

    CBW包结构如图2所示,各域含义如下:

1)命令块包标识。CBW包标记,表明这是一个CBW包,这个域的值为43425355H。

2)命令块标记。当设备返回相应的CSW包时,必须使命令状态标记域的值与此值相同。

3)数据传输长度。指明命令执行期间在Bulk端点上传数据的字节长度,如果这个域的值是0,则在CBW和CSW之间设备和主机不传输任何数据,并且设备将忽略在命令块标旗域中的方向位的值。

4)命令块标旗。方向位规定了Bulk端点数据传输的方向,其他位预留。

5)逻辑单元号。指定命令块被发送到的逻辑单元号,如果设备不支持多个逻辑单元号,则主机将这个域设置为0。

6)CBWCB长度,定义了CBWCB的有效长度,合法值为1-16。

7)CBWCB。由设备执行的命令,由设备解释。

    CSW向主机表明来自于CBW包的命令块的执行状态。设备收到CBW包解析处理后将通过Bulk-In端点发送一个CSW包。

    CSW开始于包边界,并以13字节的短包结束,结构如图3所示,各域含义如下: 


1)命令状态包标识。CSW包的标记,表明这是一个CSW包,这个域的值为53425355H。

2)命令状态标记。次域的值域CBW包的命令块标记相同。

3)数据残余。实际数据传输量与CBW包中规定的数据传输长度的差值。

4)命令执行状态,表明命令成功或失败信息,如果命令执行成功,则设备将设置此域的值为0,非0值;则表明失败或错误。

    UFI是针对USB移动存储而制定的命令块协议,它规定了主机和设备进行信息交换所使用的命令块、数据和状态信息,Bulk-Only传输协议定义了传输这些信息的方法,其中UFI命令块是封装在CBW包中的CBWCB,设备通过读取CBWCB确定具体要执行何种操作命令(如读命令),如何完成这个命令(如从闪存的哪个地址读,需要读取的长度),设备将命令的执行状态封装成CSW返回给主机。

    UFI用于大多数命令的12字节命令块的描述,结构如图4所示,其中各参数意义如下:

1)操作命令代码。指明所需要执行的操作命令;

2)逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为0。

3)逻辑块地址。命令操作的起始地址。

4)传输长度,指明请求传输的数据量,通常以"扇区"作单位,但是有几个命令是以"字节"作单位的,对于这些命令,传输长度域可以以不同的名字标识,若此域的值为0,则表面没有数据需要传输。

5)参数列表长度,用于指定发送到设备的字节数,这个域典型的应用于发送到设备的参数命令块(如模式参数、诊断参数等),若此域的值为0,则表面没有数据需要传输。

6)分配长度,指明主机已经分配的用于返回数据的最大字节长度,若此值为0,则表明没有数据需要传输。

2.3 FAT32

    FAT是Microsoft较早推出的文件系统,具有高度的兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT由引导扇区、FAT1表、FAT2表、目录和文件区组成(其中FAT2表是FAT1表的备份)。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的,FAT将块映射成扇区,原理相同,FAT将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为"簇"。通常情况下,每扇区512字节的原则是不变的,簇的大小一般是2n(n为整数)个扇区的大小。所以以簇为单位而不以扇区为单位进行磁盘的分配,是因为当区分容量较大时,采用512字节的扇区管理,会增加FAT表的项数和大文件存取的消耗,使文件系统效率不高。

    引导扇区DBR(DOS Boot Record)通常占用分区的第0扇区,共512字节,FAT表紧随其后。DBR的第一部分是一个x86跳转指令、厂商标志和操作系统版本号,接下来的从偏移0x0B开始的是一段描述能够使可执行引导代码找到相关参数的消息,通常称之为BPB。最后是引导程序代码以及扇区结束标志。BPB中记录了扇区大小、簇的扇区数、保留扇区数、FAT表大小和文件系统类型等重要参数,用于文件的索引和定位计算。

2.4 软件系统模块

    USB读写器软件由主模块、USB模块、BULK模块、FAT模块和中断处理模块组成。各模块之间相互协调调用,共同完成对U盘文件的读写创建。

    USB模块负责检测USB设备的移入/移出,对插入的设备进行枚举,分配设备地址端点号,配置设备接口端点描述符,建立BULK_ONLY输入/输出通道,BULK模块则在已建立的BULK_ONLY输入/输出通道发送CBW数据包,并接收CSW数据包,通过CBW中嵌入的CBWCB信息确定对U盘读/写操作的扇区位置和大小,FAT模块主要完成簇和扇区间的索引定位,即在U盘内寻址,利用BPB中的参数计算给定扇区的所在簇以及进入休眠状态,等待外部中断唤醒。

    中断处理模块是在中断唤醒后根据中断类型进入不同功能子模块的,也是整个软件系统的核心部分。中断模块接收到串口或并口数据后,根据内部命令字要求进行解析,命令字要求如图5所示,串口或并口数据接收流程如图6所示。 

点击看大图


3 应用测试结果

    在人造金刚石压力机压力锤头裂纹检测中,采用声发射技术进行实时监控,一旦出现异常立即停机报警,为了对出现异常时的数据进一步分析,需要将现场数据带回研究室。利用基于嵌入式的U盘读写器可以免去现场布线的麻烦,还可以省去PC机端驱动软件的开发,直接将现场数据写入U盘,方便地利用PC机中安装的MATLAB进行数据的详细分析处理。


结语

    基于嵌入式U盘读写器的设计实现可以方便地将下位机数据存储到普通U盘,彻底解决了工业控制中上下位机之间数据传输难的问题,也为以后其他领域的应用创造了前提条件,如长途客车中的黑匣子、家庭老人健康监测,随着USB技术和闪存技术的进一步发展,该设备应用领域将会逐步扩展,市场前景良好。

系统分类: 嵌入式   |    用户分类:    |    来源: 整理

评论(0) | 阅读(1475)
发表于:2007-1-26 20:05:41
标签:无标签

1

RS-232串行通信消除干扰噪声的设计方法分析

RS-232串行通信消除干扰噪声的设计方法分析

来源:现代电子技术  作者:徐杰 孟建新

1通信线路的绝缘设计方法

  
RS-232的大噪声(干扰)容限可使接口可靠工作,避免对由外部加到导线上的噪声引起的数据错误。在一个充满了电子噪声的连接环境中,绝缘可以防止噪声在连接电路之间的耦合。绝缘通过将一个电路分成一个个独立的块来进行工作。这些块使用光和磁耦合来传送能量和数据,而过滤掉大部分的噪声。

  绝缘可以隔开地线、数据连接,或者把两者都隔开。地线绝缘使得一个电路对电源震荡和在被附近电路共用的地线中的噪声有免疫能力。在长的连接中,地线绝缘还使得连接对从一端到另一端的接地电位差异有免疫能力。绝缘数据连接避免了噪声在连接和它所连接到的电路之间的耦合。

  大多数的电路连接使用直接的办法,例如焊点或者诸如螺母接线端或压接这样的机械连接。利用电镀绝缘,一个电路的地线和信号线与其他电路没有电阻通道,或者直接的接触。相反,电路可以使用光或者磁耦合来传输能量和信号。绝缘还使得每个电路对另一个电路中的噪声具有免疫能力。

  实现电镀绝缘的一般方法包括使用变压器来绝缘电源和使用光隔离器来隔离数据。在一个变压器中,在线圈绕组之间的磁耦合使得主线圈中的电流在次线圈中产生电流。光隔离器通过光敏电阻以及释放和探测可见或者红外波段中的能量的光敏二极管的方式来传输能量。以类似的方式,一个光纤——光学接口将二个电信号转换成在光纤中传输的光信号,并且在接收器中将光信号转换成电信号。

  为了进行完全的绝缘,RS-232连接的每一端需要一个RS-232接口使用的一个绝缘的电源,以及一个绝缘的接口,用来穿过绝缘屏障传输信号。在RS-232连接中,SG是信号地。因RS-232接收器读取的是信号线和SG之间的电压,一个SG上的噪声脉冲就能导致接收器误读一个逻辑电平。

  在数字逻辑中,+5 V是对信号地以上5 V电压的一个简单说法。当一个电路使用不只一个电源的时候,即使电源的接地线没有相互绝缘,使接地通路保持独立,减少了从一个通路耦合到另一个通路的噪声。每个电源的接地线可以使用独立的电线和电路板,只要在电源处连接到一起。

  含有模拟和数字电路的电路可以为每一种电路提供独立的接地线,只在一个电源附近的点,连接这两条通路。数字地线往往是有噪声的,因为数字输出在它们切换的时候产生了大电流,因此将它们和模拟电路分开就比较合理,这些模拟电路可能对微小的电压变化比较敏感。

1.1安全地线

  安全地线,或者保护地线,是1个大地地线连接,它通常是一个直径很大的部分埋在地下的铜导线或者镀铜管。1个电源插座上的3根导线中的1根就和安全地线相连,这个插座的另两根导线是带有220 V交流电压的火线和1根零线,带有220 V交流电的返回电流,零线连接到安全地线。这意味着所有建筑的电路零线通常在入口处有一个与建筑的连接。

  安全地线在出现故障的情况下提供了一个对地的低阻抗通路。例如,在很多电源中,有1个端点将安全地线和电源的底盘相连。如果底盘没有接地并且1根松散的导线或者元件故障导致1个电压源和底盘相接触,这个底盘就可能携带高电压。如果底盘接地了,电流就会沿着这个低阻抗通路流向大地直到保险丝熔断,电路断开。

  TIAEIA232标准中,有一个DCE可以有1个可移动的跨接来连接SG和安全地线。实际上,DCEDTE上的SG线经常和一个安全地线相连。

1.2大地地线

  一个安全地线是一个大地地线。因为任何电气电路可以连接到大地地线,所以它往往不是一个安静的、稳定的参考,相反它可以携带大量的各种类型的噪声。可以产生接地噪声的因素包括设备开关切换、电源系统波动、电路故障、雷击或者任何引起电流波动的事件。噪声可以表现为倾角,尖峰脉冲,60 Hz振动,或者任何形式的磁、电场变化。

  不同位置的大地地线相互之间可能有电气连接,也可能没有。它们是否相连,以及接地电压变化多大,部分取决于在接地线连接之间的介质的导电性能的好坏。

1.3共用接地线的影响

  如果一个RS-232连接的两端共享一个共用的大地地线,并且SG线也接到安全地线,从所有源头来的接地电流将会寻找阻抗最低的通路:大地地线或者SG线。这种情况,有多个返回通路,被称作一个接地回路,显然这不是所希望的。如果两台设备处在不同的建筑内部,使用不同的电源系统,SG有可能比其他通路有更小的阻抗,从其他源头来的接地电流就可能在连接的接地线上找到它们的通路,这会导致连接中的一个有噪声的接地线。一个有绝缘的接地线的连接就避免了这个问题。

2 电源地线的设计应用

  一个绝缘的接口要求为这个绝缘屏障的每一端提供一个电源。图2显示了两个绝缘的RS-232接口。每个接口使用一个双电源,如图1所示。在这个电源中一个变压器将220 V交流电转变成两个次级线圈中的低电压。一个线圈为计算机或者其他连接到光隔离器的设备端的电路提供电压。另一个线圈为RS232接口提供电压。每个电源有它自己的接地线,并且这些接地线必须和一个大地地线、底盘或者信号地线没有共同的连接。这个接口可以使用两个完全分开的电源或者输出没有共享一个通用地线的电池,而不是有两个线圈的一个电源。如何掌握一个直流电源是否与大地地线绝缘了呢?在大多数用线电压供电的直流电源中,一个变压器将线电压降压到一个较低的数值,其他元件整流、过滤和调节这个电压的输出到一个稳定的直流电压值。在变压器的主线圈和副线圈之间需要的唯一的连接是主线圈中有电流流动时产生的磁耦合。这样,这个变压器就能够将电源输出与线电压导线和安全地线绝缘。实际上,有的数字电路电源的输出没有连接到安全地线。在输出端,因为电压很低,稳压器限制了电流,如果电路试图产生大的电流,一根保险丝就将电路断开。

 
  在其他电源中,输出的接地末端连接到一个安全地,打破了这个绝缘。结果就是和其他还连接到安全地或者大地地线的电路的共享接地线。即使是这些电路处于不同的建筑中或者相距数千英尺,它们之间也可能存在一个连接。

  有两线电源插座的电源可能看上去没有安全地线连接,但是零线在外接电路插入电源的时候,是连接到安全地线的。这个电源的输出只有在它的接地线没有和零线相连的时候才是绝缘的。

  对于含有变压器的电源而言,可以用一个欧姆表来查看这个输出是否和安全地线绝缘。利用电源,量测在电源的安全地和这个直流输出的接地线末端之间的阻抗。如果这个欧姆表显示有连接,就表示没有绝缘。在电源内部、零线和安全地线应该没有连接。也可以用欧姆表验证这一点。

  有的电源不使用变压器,它们仅仅是直接整流,降低和过滤线电压。在这种情况下,输出就没有与大地地线绝缘。即使是电源插座没有安全地线引脚,在外接电路插入电源的时候,零线也是连接到安全地线的。

3采用光电隔离器

  光隔离器穿过一个隔离的屏障来传输信号。一个光隔离器由一个与光敏电阻耦合的发光二极管构成。流过发光二极管的电流使得它以可见光或者红外线的方式释放能量。这些能量将这个光敏电阻打开,导致在这个电阻的发射极和集电极之间的低阻抗。这个发光二极管的基极可以留着没有连接。从基极到发射极加入一个电阻可以导致更快的开关速度,但是输出电流更低。

  图2的接口使用了6N1398光隔离器,它是设计用来和LSTTL逻辑直接连接的。它们的增益很高达400%,但一个发光二极管的电流只有0.5 mA。在TTLRS-232电路中,在74LSl4转换器的引脚3的一个逻辑低电平使得电流流过这个发光二极管,这就打开了相应的光敏电阻,使得它的集电极处于低电平。这个MAX233将这个信号反向,然后发送一个正的RS-232电压。

  在74LSl4引脚3的逻辑高电平关闭这个发光二极管和光敏电阻。MAX233位于引脚2的内部上拉电阻产生一个负的RS232电压。

  光隔离器在另一个方向上也是以类似的方式工作。一个负的RS-232输入使得MAX233输出一个逻辑高电平。这个逻辑高电平将发光二极管和光敏电阻打开,导致在74LSl4的引脚1的逻辑低电平和引脚2的逻辑高电平。一个正的RS-232输入导致MAX233输出一个逻辑低电平。这个逻辑低电平关闭这个发光二极管和光敏电阻。一个上拉电阻将74LSl4的引脚l拉到高电平,导致在引脚2处出现逻辑低电平。

  RS-232RS-232电路显示了怎样通过使用一个RS-232输出来直接驱动一个发光二极管来绝缘一个现有的,未绝缘的RS-232接口。当RS-232电压为正的时候,这个发光二极管打开,并且这个绝缘的RS-232输出也是正的。当这个未绝缘的输出为负的时候,这个发光二极管关闭,并且一个二极管将这个电压限制在大约-07 V。在另一个方向上,电路类似于它上边的电路,除了因为这个未绝缘RS-232已经将信号反向,因而不需要一个LS74系列的反向器以外

点击看大图点击看大图

2光耦合器从TTLRS-232或从现有的RS-232到一个绝缘的RS-232形成一个绝缘的接口

  对于最底下电路的VCCl,如果没有其他用途的话,可以在DTR或者RTS使用一个正的输出。这个电路在VCCl这一边的电缆应该较短。光敏电阻的开关时间是几微秒,这个时间长度不会在数据传输速度为20 kb/s或者更低的时候导致任何问题。对于更快的波特率,应该寻找一个开关时间为这个位宽度的1/10或者更短的发光二极管。

  另一个实现绝缘接口的方法是为接口的RS-232—端使用一个独立的、绝缘的+12 V电源。这也使能够使用较便宜的14889驱动器和接收器。

  此外,可以选用Max252接口,Max252是一个在一个单一的封装里的完整的、绝缘的RS-232口。这个芯片包括一个石英谐振器和一个微型的变压器,这个变压器从芯片的5 V电源产生一个隔离的电源。它还有两个光隔离的驱动器/接收器对。

  绝缘连接的另一种方式是使用光纤电缆来取代铜导线。光纤有很多优点,它们对接地噪声和电磁干扰有抵抗力,并且自身不产生电磁干扰。光纤电缆往往可以在12.5 mil之后才需要使用转发器。

4 电涌保护设计

  电涌保护是使电路免受噪声或者破坏性电压和电流攻击的有效方法。理想的电涌保护应该吸收所有处在连接操作范围之外的电压和电流,而不在任何方面限制连接的传输。在实际工程应用中,可在连接中添加电容,以避免由于电压波动而造成的不良影响,因此也限制了最大的波特率。

  在正常的操作中,这个保护设备表现出很高的电阻,因此事实上对于传输电路而言是不可见的。当线路存在一个高电压涌流时,保护设备打开,提供了一个到地的电阻通道。

  两个有用的涌流抑制设备是TVS二极管和气电管。TVS(瞬时电压抑制)二极管在关闭的时候有很小的电容,且反应迅速(10-12 s),并且可以在很大击穿电压范围内使用。气电管要慢一些,但是可以在更高的电压下提供保护。有的连接两者都使用。每一种设备应该连接穿过一个接地跨接或者其他直接与大地地线的低阻抗连接。

参考文献

1(美)Mark Nelson.串行通信开发指南. 北京:中国水利出版社,2000,9
2(美)Jan Axelson.串行端口大全.北京:中国电力出版社,2001,5

3范逸之.Visual BasicRS-232串行通信控制.北京:中国青年出版社,2000,8

系统分类: 通信网络   |    用户分类:    |    来源: 整理

评论(0) | 阅读(757)
发表于:2007-1-26 19:54:24
标签:无标签

2

串行通信控制器85C30及其应用

串行通信控制器85C30及其应用

来源:国外电子元器件  作者:刘文彬 赵书俊 孙广彬

摘要:85C30是美国AMD公司生产的高性能双通道串并转换通信控制器,它支持多种通信协议,可用于各种多串口通信应用领域,文中介绍了85C30的特性、结构和功能,给出了85C30在异步通信中的应用方法。

    关键词:串行通信控制器 85C30 异步通信

1 概述

85C30是AMD公司生产的双通道、全双工、支持多种通信协议的通信控制芯片,该芯片自身带有串并、并串转换功能,可广泛应用于微控制器组成的多串口串行通信应用系统中。其内部集成了波特率生成器、数字锁相环和晶体振荡器等可编程器件,因而可大大减少对外围电路的需要,提高了系统的可靠性,更适用于高速通信应用领域。
点击看大图
    85C30的主要特性如下:

● 具有两个可全双工工作的通信通道;

● 可异步、同步串行通讯;

● 符合面向字符的同步协议,如IBM BISYNC(二进制同步通信协议);

● 符合面向比特的同步协议,如同步数据链路控制协议HDLC和高级数据链路控制协议SDLC;

● 最高数据传输率为4M bit/s(同步模式);

● 内含波特率生成器、锁相环和晶体振荡器;

● 具有奇偶校验、字符插入或删除、CRC(循环冗余码)生成和校验等多种自动纠错功能。

2 内部结构和引脚功能

2.1 内部结构

图1所示为85C30的内部结构框图。85C30可用于各种微控制器系统中,并具有查询、中断和DMA工作方式。

2.2 引脚功能

85C30具有40-PDIP和44-PLCC两种封装形式图2为其44-PLCC封装的引脚排列图。85C30的主要引脚功能如下:

D0~D7:数据线引脚;

RD、WR:读、写控制端低电平有效;另外,若两个引脚同时为低,可使芯片复位;

A/ B:通道A/通道B选择;

D/C :数据/命令选择;

CE:片选信号;

+5V,GND:电源接入端;

PCLK:系统时钟输入端;

INT:中断请求;

INTACK:中断响应;

IEI,IEO:分别为中断使能输入、输出端口;

RxDA,TxDA:分别为通道A的串行输入、输出;

RxDB,TxDB:分别为通道B的串行输入、输出;

TRxCA,RtxCA:分别为通道A的时钟控制端;

TRxCB,RtxCB:通道B的时钟控制端;

SYNCA、W/REQA、DRT/REQA、RTSA、CTSA、DC-DA:通道A的同步通讯控制端;

SYNCB、W/REQB、DRT/REQB、RTSB、CTSB、DCDB:通道B的同步通讯控制端。
点击看大图
3 85C30中的寄存器

在数据通信过程中,系统是否能准确地按照规定的协议完成通信任务,主要取决于初始化及系统运行期间程序对85C30的读写寄存器的合理运用。使用时,对片上每个通道的设置都应包括16个写寄存器和11个读寄存器。在这16个写寄存器中,有10个写寄存器用于通用控制,2个用于同步字符的生成控制,2个用于片上波特率设置。此外,还有两个双通道共享的写寄存器,一个用于中断向量控制,另一个用于芯片总中断开关控制。在11个读寄存器中,有9个读寄存器用于存储通信状态和数据。

4 应用电路

85C30的接口电路如图3所示,利用该电路可实现双通道的全双工异步通信,波特率为115.2kbps。电路中采用无响应中断模式,即在85C30有中断申请且没有进行中断服务时,将85C30 的INT引脚拉低有效,以向MCU申请中断,而MCU不用向85C30输出INTACK中断响应信号,从而简化了电路。判定接收发送不同中断源的中断优先级可由程序实现。该电路主要由电平转换电路、译码电路和MCU电路组成。

电平转换电路的主要作用是提高板间通信的可靠性,由于板间通信采用的是485电平标准,因此,可利用MAX490全双工通信转换芯片将TTL电平信号转换为485电平标准的差分信号。而对于译码电路,由于85C30中有两个通道,每个通道又有各自的命令口和数据口,而且每个口都需要有相应的硬件地址。因此,该译码电路由MCU的高8位地址线、低2位地址线及GAL和地址锁存器573组成。

MCU电路主要由80C196KC组成,与MCU的连线有数据线D0~D7、RD、WR控制线和INT线,其中INT连至MCU的外部中断EXINT引脚,这样,一旦85C30有中断申请,MCU可将其作为一个外部中断申请来自动生成相应的中断向量,从而执行相应的中断服务程序。中断服务程序入口地址为0X203E。另外,PCLK外接11.05926M的晶振可用于为系统提供时钟。

点击看大图


5 应用程序

5.1 初始化

图4给出了85C30一个通道的初始化流程图,由于芯片的两个通道所采用的通信协议完全相同,因此初始化过程也相同。每个通道的初始化可分为三个步骤:第一是进行各协议设置(如异步、校验、波特率、字符长度等);第二是对各种功能的使能(包括波特率生成器,接收中断,发送中断);第三为开中断。

5.2 接收发送中断服务程序

MCU在收到85C30的INT有效信号后将进入外部中断服务程序。图4给出了该中断服务的流程图。用该程序的一定顺序查询芯片的RR2即可实现芯片间和芯片内的中断优先处理任务,对85C30各中断事件的优先级设定如表1所列。

表1 85C30各中断事件的优先级

通道A接收中断
通道A发送中断
RR2=6
RR2=4
HIGH

LOW
通道B接收中断
通道B发送中断
RR2=2
RR2=0

85C30中的读寄存器RR2能实时反映出芯片内申请中断的各个中断源优先级最高的中断源,当芯片没有中断申请时,RR2的默认值为3。程序执行时,系统将首先判断U4是否有中断申请,若有,则处理相应任务。另外,在MCU处理了一个85C30的中断源后,再次读取RR2,则可再次得知当前申请中断的优先级最高的中断源。这样,就可以通过一次硬件中断申请来完成多个中断源的任务,从而大大节省了频繁进出中断的现象,从而节约了中断处理时间,提高了系统的可靠性和灵活性。

6 结束语

85C30具有两个通道,可支持多种通信协议,并可方便地扩展系统串口,提高系统通信的灵活性和可靠性。当系统中各子通道通信速度不一样时,仅需修改各自通道中的波特率寄存器的设置即可。实验证明:在异步模式下,该系统可实现双通道115.2kbps的通信速度,且其错误率为0%。

系统分类: 通信网络   |    用户分类:    |    来源: 整理

评论(0) | 阅读(762)
发表于:2007-1-26 19:48:54
标签:无标签

1

CAN与以太网数据交换的研究与分析

CAN与以太网数据交换的研究与分析

来源:单片机及嵌入式系统应用  作者:中国海洋大学 刘 滨 耿雪贞

摘要:主要介绍将CAN现场总线以协议中的标准模式接入以太网的方法,实现CAN网络中的数据和以太网中的数据进行简单交换;给出相应的硬件和软件原理以及重点难点说明。

关键词:CAN总线 以太网 数据交换 TCP/IP协议 BasicCAN模式

1 技术背景

CAN(Controller Area Network——控制器局域网)是一种由带CAN控制器组成高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。它最早由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信。其总线规范已被ISO估计标准组织制定为国际标准。由于其具有多主机、传输距离远(最远为10km)、传输速度快(最快为1Mbps)、抗干扰能力强等诸多优点,所以被认为是最有发展前途的现场总线之一。

CAN协议是建立在国际标准组织的开放系统互连模型基础上的。1991年9月,Philips Semiconductors制定并发布的CAN技术规范Version2.0为现行最高版本。其中规定了两种模式:标准模式和扩展模式。本文主要对标准模式进行介绍。

TCP/IP(Transmission Control Protocol/Internet Protocol——传输控制协议/网络协议)是一个工业标准的协议集,包括IP、TCP、UDP等子协议,保证数据在网络上的正确传输。TCP/IP协议是现代因特网的基础。

TCP/IP协议为四层模型:应用层、传输层、网络层和数据链路层。每层都有不同的功能,而且层和层之间在逻辑上是相互独立的。每层都对应一些子协议,如图1所示。本文用到的协议包括ARP、IP和TCP等。
点击看大图
2 应用背景

CAN总线在很多行业被广泛应用。由其组成的局域网可以将很多底层测控设备连接起来,最远距离可达10km(在不接中继器的条件下)。相对其它现场总线,该距离已经是很远了。但随着以太网的发展,人们希望对底层设备也能进行真正意义上的远程控制。工控机加接口卡已经被用来实现这一目的,但价格和接口卡带来的瓶颈等问题也随之暴露出来。本文是以单片机、CAN器件和网络芯片为核心的模块来完成该功能进行叙述的。这种方案降低了成本,避免了瓶颈。

3 硬件部分

硬件的实现方案有多种,可以采用集成TCP/IP协议的单片机外加CAN收发器和控制器;也可采用集成CAN控制器的单片机外加CAN收发器和网络芯片。本文的实例采用不带任何集成的单片机Philips P89C668,外加CAN控制器SJA1000、CAN收发器TJA1050以及网络芯片RTL8019AS,组成一个转换模块,功能模块如图2所示。
点击看大图
    P89C668:微控制器,主要的控制部分,实现对网络芯片以及CAN器件的控制,并进行两者之间的协议转换。

SJA1000:CAN控制器,两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式(本文仅介绍BasicCAN模式)。支持错误分析功能,对CAN收发器进行控制,为微控制器提供了控制CAN总线的简单接口。

TJA1050:CAN收发器,微控制器对CAN控制器进行相应配置后,收发器自动过完成相应的CAN总线动作。

RTL8019:网络芯片,提供给微控制器控制以太网的简单接口,使微控制器只需要对其进行相应读写即可完成对以太网的操作。

实验中另外用到一个CAN模块作为一个CAN节点,和转换模块一起组成一个简单的CAN网。
点击看大图
4 软件部分

4.1 CAN编程

Ba