这次漂亮的小编为您带来了明信片寄语(精选5篇),希望大家可以喜欢并分享出去。
关键词:16C552;串行通讯;异步
当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源,因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片16C552,从而成功解决了这个问题。本文将从电路结构和软件编程两个方面介绍该方案的实现方法。
116C552简介
1.1功能特点及结构框图
16C552是TI(TL16C552)和VLSI(VL16C552)等公司生产的异步通信芯片,具有两个增强的通用异步通讯单元通道和一个增强的双向打印机端口;支持TL16C450和FIFO两种模式,其16字节的FIFO可减少CPU中断;每个通道都具有独立的发送、接收、线路状态和设置中断功能,同时具有独立的MO-DEM控制信号、可编程的串行数据发送格式(包括数据位长度、校验方式、停止位长度)和可编程波特率发生器;另外,每个通道的数据和控制总线还具有三态TTL驱动功能。
TL16C552AM是TI公司的68脚PLCC(PlasticLeadedChipCarrier)封装芯片,其管脚及功能框图如图1所示。从图中可以看出,它的串行口主要完成两个功能,一是把外设或调制解调器接收来的串行数据转换成并行数据;二是把CPU的并行数据转换成串行数据以便发送。在正常操作过程中,CPU可以随时读取16C552的状态信息,以报告16C552传输操作的类型和状态,包括各种错误状态,如奇偶校验、溢出、帧错误和FIFO错误等。此外,16C552还具有完整的MODEM控制功能,并有CTS、RTS、DSR、DTR、RI、DCD等信号端。
16C552具有一套完善的中断系统,可以自动设定优先级。它的串行口和并行口都可以独立地工作于中断和查询两种工作方式。
1.216C552的内部寄存器
16C552内部有12个单字节寄存器,这些寄存器占用了8个I/O口地址,其地址由A0~A2决定。其中有些寄存器共用一个I/O口地址,共用的I/O口可以通过读/写信号和线路控制寄存器(LCR)的D7位(DLAB)来进行区分,具体描述见表1所列,需要说明的是:只有当16C552的CS0或CS1为低电平时,串行通道才能被访问。
表1I6C552的内部寄存器
DLABA2A1A0符号寄存器
LLLLRBR接收缓冲寄存器
LLLHTHR发送保持寄存器
LLLLIER中断允许寄存器
XLHHIIR中断识别寄存器
XLHLFCRFIFO控制寄存器
XLHHLCR线路控制寄存器
XHLLMCRMODE控制寄存器
XHLHLSR线路状态寄存器
XHHLMSRMODEM状态寄存器
XHHHSCR高速缓存器寄存器
HLLLDLL除数锁存器低位
HLLHDLM除数锁存器高位
关于各寄存器内容的具体规定,限于篇幅,这里不作详述,有兴趣者可参看TI公司的相关产品资料介绍,但在串行通讯应用中,要重点搞清楚FCR、LCR、IER等几个寄存器的内容。此外,在实际应用中,有时可能会忽视MODEM控制寄存器中的D4位,该位为自测试循环回送状态控制()位,利用它可以对串口的自测试进行控制,因此,在自测试进行完毕后,还应对该位进行复位,以保证系统的正常运行。
2通讯系统硬件接口电路
本系统的硬件接口电路如图2所示。其中,地址译码电路可以根据实际需要采用不同的电路实现。为了使系统使用灵活方便,本方案中采用一片CPLD来进行系统的地址分配。复位电路可以利用专用复位芯片,也可用上拉电阻方式实现。外接晶振可以自行选择,然后根据晶振频率设置除数锁存器的高位和低位,从而获得通讯系统正确的波特率,本系统中使用的晶振是8MHz。此外,由于16C552A有两个串行通道和一个标准并行口,它们相互之间的配合使用在硬件和软件上都要加以注意。建议将不用端口的片选接到高电平(16C552A的片选为低电平有效),以免出现错误。
3串行通讯软件设计
3.1通讯协议
本设计的通讯协议包括以下几点:
(1)波特率为9600。
(2)通讯命令由2个字节构成:第一个字节是同步字节0XFF;第二个字节是命令码,主要用来指示各种控制命令。
(3)每个字节包括8位数据位和1位停止位,无校验。
(4)在通讯过程中,上位机向TMS320F243发送同步命令,TMS320F243接收到后立即应答,若应答错误则重发。
(5)通讯程序向TMS320F243发送控制命令时,TMS320F243返回接收正确应答信号;通讯程序向TMS320F243查询系统参数命令时,TMS320F243按照规定格式返回所需数据。
PC机和TMS320F243均采用异步通讯方式,PC机采用事件驱动方式来接收数据,TMS320F243采用中断方式接收数据,而用查询方式发送数据。
3.2上下位机通讯软件设计
在PC机上编写串行通讯程序至少有三种方法,分别为汇编语言、C语言和Visual系列通讯控件(MSComm)。相比较而言,Visual系列通讯控件能够用少量的代码轻松高效地完成编程任务。实际应用中,可用以VisualBasic(简称VB)6.0中的通讯控件MSComm为基础编写PC机的串行通讯程序,而用汇编语言编写下位机(F243)软件。上、下位机的串口程序流程分别如图3和图4所示。16C552的初始化程序如下:
;THE16C552INITIALIZATIONPROGRAM
C552_INIT:
LDP#00h
SPLK#83h,GSR0
OUTGSR0,0E003h;设置LCR
SPLK#34h,GSR0
OUTGSR0,0E000h;设置DLL
SPLK#00h,GSR0
OUTGSR0,0E001h;设置DLM
SPLK#03h,GSR0
OUTGSR0,0E003h;设置LCR
SPLK#08h,GSR0
OUTGSR0,0E004h;设置MCR
SPLK#01h,GSR0
OUTGSR0,0E002h;设置FCR
SPLK#01h,GSR0
OUTGSR0,0E001h;设置IER
RET
图4
2、初遇你的心情是温馨的,和你交友的时候是真心的,与你在一起的时候是开心的,认识你这个朋友是无怨无悔。
3、时光给了这份工作太多,但我无怨无悔。因为值得庆幸的是,因为工作,我们从形同陌路变成了每天的嬉笑打闹。
4、祝福越长越漂亮,每天开心,记得照顾好自己。
5、时间虽然无可奈何而去,但您用激情一笔一笔挥洒成人生画卷。希望您的生活像色彩般璨烂,收获一副完美的人生。
6、对你的思念像袅袅的轻烟不绝如缕,对你的祝福似潺潺的小溪伴随一生一世。 日给你温暖,月给你温馨,星给你思念。
7、斯人若彩虹,遇上方知有。
8、初涉浅夏,寻觅一份寂然。
9、你若不坚强,谁替你勇敢。
从这一大叠明信片中可以看到,阿汤从标准文青到踏实主妇的演变。一开始,她和贾岛一样“一吟双泪流”,为了词句的押韵,为了感慨的悠远,为了节奏的丰沛,她把每个字词都推敲到了极致。她嫌买来的明信片太通俗,不配她练过的书法童子功,改造明信片成为她的乐趣。我记得有些明信片贴着裁剪下来的唱片封套,从巴赫到肯尼G;有的明信片贴着崔健的头像,崔健头扎红布条的头像是从音乐会的门票上剪裁下来的;为了有江南水乡的风韵,她破坏了一条蓝印花布小方巾,把它的毛边都剔出来,遮盖明信片上难看的图案。那会儿,每一张明信片都是专属设计,有时,改造的痕迹实在太多,被邮局告知不能以明信片的身份寄走,她不得不买一个大号航空信封,把明信片装在里面寄出。
十年过去了,阿汤嫁人了,又过了五年,她已是两个男孩的妈妈。忙碌劳累,生活几乎不再有风花雪月。她夏天给俩儿子买20件T恤,省掉扣扣子的时间;把考职称的书放在厨房里,在炖汤的间隙瞅上两眼。唯一没变的是寄明信片的喜好。暑假里,一家人去厦门,去青岛,去海口,去深圳,去一切可以让小孩子玩水玩沙的地方,她总会匆匆忙忙从当地邮局寄明信片给我。阿汤的笔迹潦草匆忙,让我觉得我之前对明信片的期待和夸赞,增加了阿汤的负担,打扰到她本已忙乱不堪的生活。
我曾经暗示阿汤不必再寄了,谁知,她回应说:“只有在写明信片的那五分钟里,我觉得自己还是原来的那个阿汤,没有变成庸俗妇女。”我沉默了三秒。没错,到了30岁出头的这个年纪,如果想做个贤妻良母,你就会发现日常生活中的大量琐事组就了黏稠的水面,我们艰难泅渡,偶尔感到窒息。有时候需要浮出水面,透一口气。写明信片的五分钟是和少女时代的理想对接的五分钟,阿汤和我,都需要这五分钟透个气。
又过了十多年,阿汤的明信片风格再度大改。最牵挂的外婆已经去世,丈夫又频繁去美国的实验室做课题,阿汤决定全家去大洋彼岸开始新生活。一旦做下这个决定,她的遗憾竟变成了:“我们国家的美景我还没有看够呢,以后举家回来游玩可就没有这么方便了。”因此在准备托福考试的同时,她见缝插针地把全国的美景看了个够,九寨沟、武夷山、长白山、稻城亚丁,阿汤在明信片上说,见到那些绝世美景感觉自己的喉头涌满津液,恨不能把那山那水都用眼睛吃进去。是的,世界这么大,穷极一个人的目力,又能见识几许,领会到几许?明信片上,三言两语的诉说,都是这种中年的苍茫和不甘。她就像魔幻小说里走到世界尽头的人,忽而发现地平线尽头还有一个世界,新奇雀跃,心头又涌满慌乱。此刻,若由彼地平线回过头来看此地平线内的物事,是否也充满了“我多么无知,我并不了解它”的自责?
其实,明信片和照片没有差别,只不过是别人拍的照片被成批打印出来,后面还可以写字而已,但是就因为当时的心情、写字时的表情、街上的车子驶过的声音,都让这张明信片被赋予了重要的意义。贴上一枚小小的邮票,就开始它的旅程,到达手中的时候它穿越了时空,然后就静静地躺在母亲的铁盒子里。当我老了,就一张张地去看,诉说一个个故事。我会深深记得,那时的自己是那么年轻、那么可爱、那么有梦想、那么满不在乎。
每次回国打开铁盒看到明信片的时候,我的心情都是复杂的。明信片上都有印章,记得在瑞典读书的朋友告诉我,他们那里是不盖章的。我突然觉得不盖章,似乎没有了意义,偏偏要有个证明,证明我跋涉千山万水,抵达过我曾走过的地方,抵达过我的家……
记忆中最深刻的一次,就是我在曼联球场门口的巴士站,蹲在地上写明信片。那一次的旅行,只不过是蜻蜓点水式的到此一游,不断地拍照,不断地看风景,唯一停下来的时候除了在饭店睡觉洗漱,就是写明信片那短暂的十分钟。在利物浦买来的明信片,也是拿到那里写给家人和旧日同学的。
明信片有披头士乐队集体的照片,还有主唱一个人的照片。写完地址,该写祝福语的时候,我都会迟疑一下,往往不知应该写些什么。于是,我写给爸妈的通常说天气,这里是哪里,有时还会信誓旦旦地说:“我会带你们来的。”对于旧日同学,我通常是问候的话语。因为不论写什么,明信片传递的都是一份情谊,收到的时候能令人感到温暖。
临走时在曼彻斯特,图书馆门口有小孩奔跑,天气阴沉,球场里满是游客。
当旅行的回忆渐渐淡去,唯有明信片,一直在那里提醒着我:当时的我是和谁一同前往的?当时的我在迷恋哪一种音乐?当时的我在读哪一本书?当时的我位于地球上哪一个坐标?
后来,在荷西的家乡安达卢西亚的古董市场,在一堆硬币和邮票中,我看到了一张张已经褪了色、还有潦草字迹的明信片。我慢慢地挑选着,一旁的摊主看见我放下了一张,就满怀深情地再次拿起,读着上面的字句,翻过来看着前面的照片。
“这些明信片都是你的吗?好多啊!”我感叹。
女人笑了:“是啊!全是我的,以前的男朋友写给我的。”
“那么多?来自世界各地啊!”
“哈哈,别小看我。”
我不知道这些是真的还是这个女人在开玩笑,但我知道她和我,一个在回忆,一个在幻想。
【关键词】CAN;总线;通信
一、CAN总线数据库的设计
CANdb++是CANoe内置的工具,用来描述CAN总线的一些对象,这些对象包括:
(1)CAN节点。具体包括CAN总线网络中所有节点的名称以及通信1D。
(2)信号signal。信号signal代表一种类型的变量,一般用消息中的一位或者几位来表示。一般包含的主要信息有:startBit,即开始位;length即这个变量的长度是多少位的。除此之外还有最大值最小值的设置等等。
(3)消息Message:Message。的实质就是在CAN总线上通信的数据帧,一个Message包含的主要信息有:ID,表明这个数据帧是从哪个节点发出的:DLC,也就是数据帧的长度,即多少个字节(Byte):信号signal,一个消息一般含有一个或多个信号。
(4)环境变量(environment variables)。环境变量是信号的另一个身份,用以在CANPL编程和Panel而板时进行变量绑定。
由美国公司Silicon Laboratories研发出的单片机C8051 F040在内部嵌入了CAN总线控制器CAN2.0B,使CAN总线与单片机之间的通信更加简捷方便。CAN总线采用了新技术与独特设计,为分布式控制系统实现各节点之间的实时、可靠的数据通信提供强了有力的技术支持。
因此,本文阐述了单片机C8051F040及内嵌CAN总线模块,利用对CAN总线网络进行数据传输,实现了CAN总线的数据通信。
二、增强型单片机C8051F040简介
C8051F040采用的微控制器内核是CIP 51,它完全兼容MCS 51TM的指令集,其外部设备与标准的8052的外设完全相同,包括5个16Bit的计数器/定时器、256Byte的内部RAM,128Byte的特殊功能寄存器(SFR)、2个全双工串口及8个8bit的I/0端口。CIP51微控制器内核采用了流水结构,这就使得指令的执行速度得到了极大的提升。CIP 51微控制器内核还包括256Byte的RAM,其中高128Byte为双映射。通用RAM的高128Byte采用间接寻址方式,128Byte的SFR地址空间采用直接寻址方式。CIP 51微控制器内核的SFR地址空间含有256个SFR页。通过SFR分页,CIP51微控制器内核可以实现对控制和配置片内外设的SFR的控制。该芯片内还含有片内调试接口JTAG,方便进行软件开发调试。
三、CAN2.0控制器简介
C8051F040单片机内部集成了Bosch公司的CAN控制器,可以用来实现CAN总线的数据通信,Bosch CAN由下面几部分组成:CAN内核(CAN协议控制器和用来完成消息串/并行转换的接收和发送移位寄存器)、报文RAM(含有32个报文对象)、报文处理状态机制(控制管理功能)和CAN控制寄存器(配置C_CAN模块等)。
CAN内核是模块对总线网络进行数据传输的核心,主要完成的功能是对CAN协议进行解析,并通过串/并移位寄存器实现通信节点间的数据通信:报文RAM含有32个报文对象,每个报文对象都可以存取通信节点的相关信息及数据身份码等:当通信节点的数据在网络上进行传输时,CAN控制寄存器可以对其进行信息管理的设置:报文处理状态机制主要是完成控制管理功能,实现CAN核、报文RAM和CAN控制寄存器之间的数据传输,并向CIP-51微控制器内核提供有关总线状态和消息对象的数据收发完成的中断标志
在CAN控制器寄存器中有3个寄存器可以通过CIP 51微控制器内核的特殊功能寄存器直接访问,其它的寄存器只能通过CANODATH,CANODATL和CANOADR寄存器以地址索引的方式间接访问。CANODAT(CANODATH和CANO DATL)用来存储数据,CANOADR用来存储地址。如果想要读/写某一个CAN寄存器,可以先把该寄存器的索引号写到CANOADR中,然后从CANODAT中就可以读/写该寄存器了。
四、数据通信的硬件结构
以机控制单元FFR和C8051F040通信为例,控制单元FFR的接口支持CAN协议,通信双方为FFR和C8051F040。FFR发出CAN帧数据,C8051F040接收CAN帧数据。同样,C8051F040发出的CAN帧数据,FFR接收CAN帧数据,这样就完成了两个支持CAN协议的硬件间的通信。
五、数据通信软件设计
软件开发集成环境采用KEIL公司的μVision3它可以用来编译C源码,连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,本文采用C51语言设计数据通信程序,C51是以ANSI C为基础发展起来的,主要用于满足单片机编程的需求。
C51语言虽然继承了标准C语言的绝大部分的特性,而且基本语法相同,但其本身又在特定的硬件结构上有所扩展,如关键字shit,data idata,plot。等,同时更加注重了对系统资源的利用。数据通信软件主要包括初始化程序、接收程序和发送程序。
六、结论
随着通信技术的快速发展,CAN总线通信得到广泛的应用,本文以控制单元FFR和C8051F040为通信双方,介绍了CAN通信总线,C8051F040单片机,实现了CAN总线的数据通信,为系统与主机通信提供了参考。
参考文献
[1]张子明,罗运虎,肖前贵,周勇军,周涛,阚艳。基于C8051F040单片机+BU61580架构的1555B总线通信接口模块的设计[J].测控技术,2013,12:110-113.
[2]朱元,肖宇,吴志红。基于XC886单片机的门控系统LIN总线通信模块设计[J].电子元器件应用,2009,08:25-27+30.
[3]邓师平,隋静,黄美兰。基于DSPIC30F4011单片机的CAN总线通信设计[J].电子元器件应用,2010,12:31-32.