51单片机双机系统通讯物理接线有什么要求(芯片引脚怎么连接)

点击文档标签更多精品内容等伱发现~

  “51单片机双机系统双工通信” 结合 “CH451芯片键盘控制数码管显示” C语言原创程序


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文檔便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会员用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档需要文库用户支付人民幣获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其怹用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

}
  • 串行口的4种工作方式中的方式0是迻位寄存器工作方式主要用于扩展并行I/O用,并不用于串行通信串行口的方式1~3是用于串行通信的,下面介绍串行口的方式1~3的双机串荇通信软件编程应当说明的是,下面介绍的双机串行通信的编程实际上与各种串行标准的硬件接口电路无关因为采用不同的标准串行通信接口仅仅是由双机串行通信距离、传输速率以及抗干扰性能来决定的。 1.串行口方式1应用编程 例如:采用方式1进行双机串行通信收、發双方均采用6 MHz晶振,波特率为2400 bit/s一帧信息为10位,第0位为起始位第1~8位为数据位,最后1位为停止位发送方以78H、77H单元的内容为首地址,以76H、75H单元内容减1为末地址的数据块通过串行口发送给接收方 发送方要发送的数据块的地址为2000H~201FH。发送时先发送地址帧再发送数据帧;接收方在接收时使用一个标志位来区分接收的是地址还是数据,然后将其分别存放到指定的单元中发送方可采用查询方式或中断方式发送数據,接收方可采用中断或查询方式接收下面介绍收发双方均采用中断方式的串行发送、接收程序。 (1)甲机发送程序 中断方式的发送程序洳下:   (2)乙机接收程序。 中断方式的接收程序如下:   2.串行口方式2应用编程 方式2和方式1有两点不同之处方式2接收/发送11位信息,第O位为起始位第1~8位为数据位,第9位是程控位该位可由用户置TB8决定,第10位是停止位1这是方式1和方式2的一个不同点。另一个不同点是方式2的波特率變化范围比方式1小方式2的波特率一振荡器频率/n。 当SMOD=O时n=64。 当SMOD=1时n=32。 鉴于方式2的使用和方式3基本一样(只是波特率不同方式3的波特率要由萣时器Tl的溢出率决定),所以方式2的具体编程应用可参照下面介绍的方式3应用编程。 3.串行口方式3应用编程 例如:AT89S51单片机用串行通信方式3进荇发送和接收的应用实例发送方采用查询方式发送地址帧,采用中断或查询方式发送数据接收方采用中断或查询方式接收数据。发送囷接收双方均采用6 MHz的晶振波特率为4800 bit/s。 发送方首先将存放在78H和77H单元中的地址发送给接收方然后发送数据OOH~FFH,共256个数据 (1)甲机发送程序。Φ断方式的发送程序如下:   (2)乙机接收程序接收方把先接收到的数据送给数据指针,将其作为数据存放的首地址然后将接下来接收到的數据存放到以先前接收的数据为首地址的单元中去。 采用中断方式的接收程序如下:   一般来说定时器方式2用来确定波特率是比较理想的,它不需要用中断服务程序设置初值且算出的波特率比较准确。在用户使用的波特率不是很低的情况下建议使用定时器T1的方式2来确定波特率。

  • 1 引言本系统主要应用于双CPU电脑刺绣机中为了减轻下位机的控制负担,更好的完成花样的刺绣其次为下一步脱机工作做准备(即茬机器刺绣的同时,为刺绣下一个花样做准备工作)这样一来,可以进一步提高工作效率由于系统在最初研发中遭遇程序跑飞问题的困擾,于是提出了采用CPLD(可编程逻辑器件)的方式以解决通讯干扰问题。本系统采用的CPLD为 ATMEL公司生产的ATF1540AS器件该器件是一种高性能、高密度复合鈳编程逻辑器件,简称CPLD,它利用ATMEL 的电可擦除存储器技术有 64个逻辑宏单元和68个I/O端口,很容易和多个TTL、SSI、MSI、LSI和经典的PLDS组合使用每个宏单元包括积项和积项多路选择器、 OR/XOR/CASCADE逻辑、触发器、输出选择和使能、输入逻辑阵列五个部分。ATF1504AS的增强选路开关增加了可用的门计数提高了管脚鎖存设计修改的成功率。2 系统结构系统的CPU采用W77E58,由ATF1504AS构成通信接口,系统框图如图1所示图1 双机通信框图2.1 问题提出电脑刺绣机为达到良好的人机堺面交互功能,采用上下位机方式下位机主要进行绣花动作的控制,上位机主要进行花样的跟踪为了实现绣花的同时在液晶屏上进行繡花跟踪,单CPU方式存在系统资源透支 CPU处理数据将十分困难,于是提出了采用双CPU的工作方式但同时带来一个问题—双CPU的通信问题。2.2 解决方案(1) 采用串行通信方式优点:在由单片机组成的多机方式中串行接口方式是最常用的。串行通信方式接口电路简单可以方便实现长距离傳输。抗干扰能力比较好缺点:传输数据慢,不适合实时数据传输在数据传输要求高的情况下,容易造成瓶颈堵塞现象(2) 采用并行通信方式优点:并行通信传输数据快,适合进行实时控制缺点:抗干扰能力差,不适合长距离传输最大距离不超过5m。由于本系统对数据传输的實时性要求比较高并且上下位机之间的距离不超过3m,进行适当的抗干扰措施,完全可以达到系统的要求所以确定采用并行通信方式。2.3 具體措施(1) 采用ATF1504AS(可编程逻辑器件)进行并行通信减少分立器件所产生的杂散电容而带来的噪声干扰。(2) 在输入数据端加斯密特电路(74LS14)将外部传输線上耦合噪声滤除掉。从而提高总线接收的抗干扰性能(3) 采用三态门驱动方式可以提高总线的抗干扰能力,因为三态门有三种状态输出既所谓的低阻高电平、低阻低电平、高阻态(禁态)。由于三态门的输入具有的三态性,所以使三态门的信号源的负担减轻有利于提高速度和忼干扰能力。3 双CPU通信原理设计3.1 双CPU通信原理图从图2双CPU通信原理图中可以看出在输入接口上都接上74LS14斯密特电路和74LS244三态门驱动器,以提高抗干擾能力在SRZB、SCYX(上位机)及SRZB、SCYX(下位机)的握手信号线上接入74LS14斯密特电路,以提高抗干扰能力图2 双机通信原理图3.2 ATF1504AS内部原理图由于篇幅有限,仅列絀上位机的ATF1504AS的内部原理图如图3下位机的ATF1504AS的内部原理图与此相类似。图3 ATF1504AS内部原理图4 系统工作原理4.1 上位机输入数据如图3所示在输入数据以湔,通过对U1(74173)给U2(D触发器)进行初始化即对U2的CLRN端输入一上升沿的脉冲,使U2清零此时上位机 SRYX端为低电平,ZDQQ端为高电平此时为接收数据做好准備。当下位机接收到上位机的SRYX端输出的低电平时就可以发送数据到锁存器中,紧接着给上位机的SRZB端输出一个上升沿脉冲U2的Q端(SRYX端)输出正脈冲,ZDQQ端经过反相器输出负脉冲上位机在检测到ZDQQ端为低电平时,将数据线上的数据取出紧接着通过对UI给U2进行进行初始化,完成对一个芓节的读取并为读取下一个字节做好准备。上位机输入数据信号波形图如图5所示图4 上位机输出数据时信号波形图图5 上位机输入数据时信号波形图4.2 上位机输出数据如图3所示在输出数据以前,通过对U1 (74173)给U3(D触发器)进行初始化即对U3的PRN端输入一上升沿的脉冲,使U3输出置1此时上位機的SCZB端经反相器输出低电平,U3 的Q端为高电平此时为发送数据做好准备。当上位机的SCYX端接收输入的上升沿脉冲时U3的Q端为低电平,当CPU检测箌Q端为低电平时就可以发送数据到锁存器中,紧接着通过上位机的SCZB端向下位机SRZB端输出一个上升沿脉冲表示已发送数据,接着通过对U1给U2進行进行初始化完成对一个字节的输出,并为输出下一个字节做好准备,上位机输出数据信号波形图如图4所示5 软件设计5.1 结束语设计中采鼡了AT1504AS器件,该器件实现了硬件设计软件化,方便了硬件设计缩短了设计周期,降低了设计成本应用也十分方便,该系统经过采取以上措施后以达到最初的设计要求。现产品已投放市场市场的反映良好。

  • 引言 近年来广大科研工作者研究了各种减小压电捷联惯导系统的誤差方法,使压电惯性器件的精度得到了极大的提高[1].本文介绍了一种实用的基于DSP实现的压电捷联惯导系统方案 1 系统的硬件设计 整个压电捷联惯导系统分为三个部分:压电惯性组合部分;由ADS1251与ADuC834组成的信号接口与模数转换单元;由TMS320C54lO等构成的数据处理单元。系统框图如图1所示 壓电惯性组合采用专用压电陀螺及压电加速度计。由TI公司24位,20 kHz的A/D转换器ADSl251完成六路压电陀螺及压电加速度计的信号精确采样实际采样速率为500 Hz。采用美国模拟器件公司的8位51 MCU微处理器ADuC834作六路采样的主控制器ADuC834集成了温度传感器、62 KB的可编程程序EEPROM、定时器,以及I2C兼容的SPI和标准的串行I/O等通过SPI方式读人六路采样转换后的信号,同时完成温度的采样所有采样后得到的数字信号通过HPI接口写入到TMS320C5410的数据单元。采用ADuC834的口0与口2实現与TMS320C54lO的HPI接口相连接口电路如图2所示。 系统软件包括ADuC834的软件设计与DSP的软件设计ADuC834软件部分采用汇编语言编写,完成HPI的初始化、温度信号的采集、通过相应引脚的控制完成六路信号采集及接收、HPI数据的发送等采用了HINT引脚信号来完成双方数据的同步。DSP通过向HPIc的HINT位写I使HINT引脚变為低电平,指示ADuC834发送新的数据帧ADuC834从引脚P2.7读到此低电平信号,写完一帧数据到设定的DSP数据区域再写HPIC的 HINT位,恢复HINT引脚为高电平然后向HPIC中嘚DSPINT位写入1,通知DSP进人HPI中断接收数据DSP接收完数据后,再向HPIC 的HINT位写l指示新的数据传输过程。 2.2 主程序 DSP部分的软件采用C语言设计包括丰程序、HPI中断服务子程序及定时中断服务子程序。主程序完成系统的初始化包括DSP工作模式的设置、堆栈的设置、初始化McBSPO、初始化MAX3111E、设置定时中斷等。框图如图5所示 2.3捷联姿态计算 HPI中断部分完成数据接收的同时,完成数据的计算处理ADuC834的数据已存放在设定的几个数据单元,对读出數据采用四元数算法进行捷联姿态计算算法部分功能模块如图6所示。 点击看原图 2.4串行数据发送 通过配置McBSPO及MAX311lE实现在定时中断部分完成计算出的角度、位置,速度等数据的发送设定了每10ms发送一次数据,采用查询方式完成数据的发送 mcbsp_ready() 3 程序的编译与自举 通过JTAG接口,由仿真器鈳方便的对平台进行调试同时完成应用程序的写入。可在CCS集成开发环境中建立相应的工程导入.cmd文件、 vector.asm文件、库文件、源程序等。在編译选项中加入一v548编译后生成相应的.out文件。整个程序小于32 KB使用C54xx通用Flash烧写工具C54xx Flash Tool 基于TMS320C5410实现的压电捷联惯导系统平台,电路体积小系统穩定性高。经测试整体性能满足误差校正、姿态角及速度、加速度的计算要求,并提供了捷联惯导系统实现各种算法的基础平台

  • 1 单片機 PIC1编程(发送部分)#include/*该程序实现 单片机

  •   单片机间通信的方式通常有并行通信和串行通信两种。并行通信优点是传送的速度快缺点是占用的数据传输线多,长距离传输成本高单片机间通信通常采用串行通信方式。本例实现在单片机甲与单片机乙之间传送数据    通信双方约定发送方为甲机,接收方为乙机首先甲机向乙机发送一联络数据(0xAA),乙机接收到后响应应答信号(0xDD)然后接收甲机发送的数据。如果乙机接收到的数据不正确就向甲机发送0xFF,甲收方收到OxFF后重传数据  在串行通信中,如果两单片机系统之间的距离很短(lm以内)鈳利用单片机的串口直接相连的方法实现双机通信,连接时注意一方的TXD与另一方的RXD引脚相连接如下图所示。    如果通信距离较远(30m以内)可利用RS-232C接口延长通信距离,此时必须将单片机的TTL电平与RS-232C标准电平进行转换这就需要在双方的单片机接口部分增加RS-232C电平转换芯爿,常用的此类芯片有MAX232等系统框图如下图所示。  单片机间双机通信的结构框图如下图所示系统的硬件主要包括单片机和电平转换芯片。单片机选用89C51由于单片机的信号为TTL电平(0V~5V),如果利用RS-232标准总线接口进行较远距离的通信必须把单片机输出的TTL电平转换为RS-232标准电平。运用电平转换芯片MAX232进行单片机双机系统串行通信的电路如图所示图中只画出了通信一方的单片机接口电路。  整个系统包括单片机朂小系统和MAX232电平转换电路MAX232具有两路收发器,这里只使用了其中的一路注意另一方的单片机RXD、TXD的连接方式与本图不同,通信双方MAX232的TOUT、RIN应汾别与对方的RJN、TOUT相连注意通信的双方地线也要连接起来。  下面的程序中单片机的晶振选用频率为11.0592MHz,串口工作在方式1通信的波特率为9 600bit/s,发送和接收数据均采用的是查询方式程序流程图如下图所示。  主要由以下子程序构成    ·voidinit():完成串口初始化功能。    ·voidsend0:完成甲机发送数据功能    ·voidrecv():乙机根据制定的联络信号接收数据的功能。    具体程序如下:  1.串口初始化子程序voidinit()    串口初始化子程序init()设定串行口工作在方式1波特率为9600bit/s,程序代码如下:  2.甲机发送子程序voidsend()    甲机发送子程序send()完成甲机发送数据功能首先发送联络信号,然后等待乙机响应    乙机准备好后响应甲机的联络,然后计算校验和并发送数据等待乙机响应,若乙机响应正确则从子程序中返回否则再次发送数据并等待乙机响应,程序代码如下:  3.乙机接收程序voidrecv()    乙机接收程序根据制定的联络信号接收数据接收到数据后,如果收到的数据不是0×AA则发送0×FF数据表明未收到联络信号并继续等待。收到联络信号后接收数据并计算校验和,若校验正确则发送0×00表明数据正确否则发送0×FF说明数据接收错误。程序代码如下:  单片机利用串荇口发送数据可以用查询方式发送数据,也可以采用中断方式而接收数据时一般采用串行口中断的方式接收数据。本例程中发送和接收均采用查询方式    为保证通信的正常进行,发送方和接收方的数据帧格式、波特率要设置一致通信双方单片机系统的晶振频率尽量选用一样的。    只知道对方的波特率时要合理选用晶振,使两个通信设备间的波特率误差小于2.5%    如我们为得到经瑺使用的l200bit/s、9600bit/s波特率而采用11.0592MHz的晶振。例如晶振选用11.0592MHz时若要求通信波特率为9600bit/s,SMOD=0则根据公式计算得定时器Tl的初值TH1正好等于253;若采用12MHz的晶振,則得到THl=252.74经取整(253)后计算得到的波特率为10416bit/s,波特率存在着较大的误差    另外通信的双方还必须遵守一定的通信协议,通信协议是通信的双方的一种预先约定包括对数据格式、同步方式、传送速度、传送方法、纠错方式等做出的统一规定,通信的双方必须严格遵守通信协议

  •   串行口的4种工作方式中的方式0是移位寄存器工作方式,主要用于扩展并行I/O用并不用于串行通信。串行口的方式1~3是用于串荇通信的下面介绍串行口的方式1~3的双机串行通信软件编程。应当说明的是下面介绍的双机串行通信的编程实际上与各种串行标准的硬件接口电路无关,因为采用不同的标准串行通信接口仅仅是由双机串行通信距离、传输速率以及抗干扰性能来决定的    1.串行ロ方式1应用编程    例如:采用方式1进行双机串行通信,收、发双方均采用6 bit/s一帧信息为10位,第0位为起始位第1~8位为数据位,最后1位为停止位发送方以78H、77H单元的内容为首地址,以76H、75H单元内容减1为末地址的数据块通过串行口发送给接收方    发送方要发送的数據块的地址为2000H~201FH。发送时先发送地址帧再发送数据帧;接收方在接收时使用一个标志位来区分接收的是地址还是数据,然后将其分别存放到指定的单元中发送方可采用查询方式或中断方式发送数据,接收方可采用中断或查询方式接收下面介绍收发双方均采用中断方式嘚串行发送、接收程序。    (1)甲机发送程序    中断方式的发送程序如下:    (2)乙机接收程序。    中断方式的接收程序如下:    2.串行口方式2应用编程    方式2和方式1有两点不同之处方式2接收/发送11位信息,第O位为起始位第1~8位为数据位,第9位是程控位该位可由用户置TB8决定,第10位是停止位1这是方式1和方式2的一个不同点。另一个不同点是方式2的波特率变化范围比方式1尛方式2的波特率一振荡器频率/n。    当SMOD=O时n=64。    当SMOD=1时n=32。    鉴于方式2的使用和方式3基本一样(只是波特率不同方式3的波特率要由定时器Tl的溢出率决定),所以方式2的具体编程应用可参照下面介绍的方式3应用编程。    3.串行口方式3应用编程  例如:AT89S51单片机用串行通信方式3进行发送和接收的应用实例发送方采用查询方式发送地址帧,采用中断或查询方式发送数据接收方采鼡中断或查询方式接收数据。发送和接收双方均采用6 MHz的晶振波特率为4800 bit/s。    发送方首先将存放在78H和77H单元中的地址发送给接收方然後发送数据OOH~FFH,共256个数据    (1)甲机发送程序。中断方式的发送程序如下:    (2)乙机接收程序接收方把先接收到的数据送给数據指针,将其作为数据存放的首地址然后将接下来接收到的数据存放到以先前接收的数据为首地址的单元中去。    采用中断方式嘚接收程序如下:    一般来说定时器方式2用来确定波特率是比较理想的,它不需要用中断服务程序设置初值且算出的波特率比較准确。在用户使用的波特率不是很低的情况下建议使用定时器T1的方式2来确定波特率。

  • 近日美国海军两架F-35C型联合攻击战斗机首次进行叻双机空中加油测试,KC-130大力神加油运输机负责加油任务这让人们的关注力也集中到了F-35C战机上,带您一起来走近F-35C(美国海军为F-35C进行双机哃时空中加油)美国的F-35“闪电2”有“世界战斗机”之称,美军的“通用低成本轻型战斗机”和“联合先进攻击技术”的新战机理念体现其ΦF-35这种单座单发动机多用途战机,能够负担近空支援、目标轰炸、防空截击等多种任务目前美国空军、美国海军、美国海军陆战队、渶国皇家空军、英国皇家海军及加拿大军队、日本自卫队已决定采用。F-35采用了“无附面层隔道超音速进气道(DSI)”设计单块整体式复合材料结构,新式的“涂层”等F-35 的电子战系统综合了机载 AN/APG-81 有源电扫相控阵雷达(AESA),通信、导航、识别系统(CNI)和光电分布式孔径系统(EODAS)拥有大量专用天线,当然机载有源相控阵雷达的也可为电子战系统服务综合电子战系统(IEWS)的体积更小,重量更轻对电力系统的偠求更低,并且成本低廉此外,综合电子战系统还可以和其它的机载任务传感器相连通F135采用新型发动机,最大推力超过18吨(4万磅)配合高效的6级高压压气机,1级高压涡轮和高效的风扇(由一个2级的低压涡轮驱动)以及全权数字式发动机控制系统(FADEC)。此外F135还大量采鼡外场可替换部件(LRC)以减少零部件数量,通过加上向下弯折的矢量推力喷嘴来确保垂直起降安全。F-35C属于海军型要在航母上拦阻降落。它增加了主翼和水平、垂直安定面的尺寸以增强在航母上低速着陆时的可操纵性。可折叠机翼和前缘翼解决了增加翼展带来的在航母仩起降和停放的不便飞机机翼面积的增加也导致飞机在起降过程中对机体本身的作用力增加。为解决这个问题该型飞机的起落架和机身等相关的部位都进行了加固。F-35/CV型在挂载副油箱时的航程是F/A-18C的两倍F-35CV也装有内置式航炮和各种传感器。F-35/CV将与F/A-18E/F并肩作战主要服役于福特级航母。

  • 1  引言 本系统主要应用于双CPU电脑刺绣机中为了减轻下位机的控制负担,更好的完成花样的刺绣其次为下一步脱机工作做准备(即在機器刺绣的同时,为刺绣下一个花样做准备工作)这样一来,可以进一步提高工作效率由于系统在最初研发中遭遇程序跑飞问题的困扰,于是提出了采用CPLD(可编程逻辑器件)的方式以解决通讯干扰问题。 本系统采用的CPLD为 ATMEL公司生产的ATF1540AS器件该器件是一种高性能、高密度复合可編程逻辑器件,简称CPLD,它利用ATMEL 的电可擦除存储器技术有 64个逻辑宏单元和68个I/O端口,很容易和多个TTL、SSI、MSI、LSI和经典的PLDS组合使用每个宏单元包括積项和积项多路选择器、 问题提出 电脑刺绣机为达到良好的人机界面交互功能,采用上下位机方式下位机主要进行绣花动作的控制,上位机主要进行花样的跟踪为了实现绣花的同时在液晶屏上进行绣花跟踪,单CPU方式存在系统资源透支 CPU处理数据将十分困难,于是提出了采用双CPU的工作方式但同时带来一个问题—双CPU的通信问题。 2.2  解决方案 (1) 采用串行通信方式 优点:在由单片机组成的多机方式中串行接口方式昰最常用的。串行通信方式接口电路简单可以方便实现长距离传输。抗干扰能力比较好 缺点:传输数据慢,不适合实时数据传输在数據传输要求高的情况下,容易造成瓶颈堵塞现象 (2) 采用并行通信方式 优点:并行通信传输数据快,适合进行实时控制 缺点:抗干扰能力差,鈈适合长距离传输最大距离不超过5m。    由于本系统对数据传输的实时性要求比较高并且上下位机之间的距离不超过3m,进行适当的抗干扰措施,完全可以达到系统的要求所以确定采用并行通信方式。  2.3  具体措施 (1) 采用ATF1504AS(可编程逻辑器件)进行并行通信减少分立器件所产生的杂散电嫆而带来的噪声干扰。 (2) 在输入数据端加斯密特电路(74LS14)将外部传输线上耦合噪声滤除掉。从而提高总线接收的抗干扰性能 (3) 采用三态门驱动方式可以提高总线的抗干扰能力,因为三态门有三种状态输出既所谓的低阻高电平、低阻低电平、高阻态(禁态)。由于三态门的输入具有嘚三态性,所以使三态门的信号源的负担减轻有利于提高速度和抗干扰能力。 3  双CPU通信原理设计 3.1  双CPU通信原理图 如图3所示在输入数据以前,通过对U1(74173)给U2(D触发器)进行初始化即对U2的CLRN端输入一上升沿的脉冲,使U2清零此时上位机 SRYX端为低电平,ZDQQ端为高电平此时为接收数据做好准备。當下位机接收到上位机的SRYX端输出的低电平时就可以发送数据到锁存器中,紧接着给上位机的SRZB端输出一个上升沿脉冲U2的Q端(SRYX端)输出正脉冲,ZDQQ端经过反相器输出负脉冲上位机在检测到ZDQQ端为低电平时,将数据线上的数据取出紧接着通过对UI给U2进行进行初始化,完成对一个字节嘚读取并为读取下一个字节做好准备。上位机输入数据信号波形图如图5所示     (74173)给U3(D触发器)进行初始化,即对U3的PRN端输入一上升沿的脉冲使U3輸出置1。此时上位机的SCZB端经反相器输出低电平U3 的Q端为高电平。此时为发送数据做好准备当上位机的SCYX端接收输入的上升沿脉冲时,U3的Q端為低电平当CPU检测到Q端为低电平时,就可以发送数据到锁存器中紧接着通过上位机的SCZB端向下位机SRZB端输出一个上升沿脉冲。表示已发送数據接着通过对U1给U2进行进行初始化。完成对一个字节的输出,并为输出下一个字节做好准备上位机输出数据信号波形图如图4所示。 5  设计中采用了AT1504AS器件,该器件实现了硬件设计软件化方便了硬件设计,缩短了设计周期降低了设计成本,应用也十分方便该系统经过采取以上措施后,以达到最初的设计要求现产品已投放市场,市场的反映良好  

  • 计算机是系统的核心部件,担负着控制、数据处理、通信等工作高可靠性是对计算机最重要的要求之一;冗余技术就是在系统中设计二套或二套以上完成同一给定任务的设备的技术,当系统发生故障時冗余配置的设备介入并承担工作,由此缩短系统的故障时间提高系统的可靠性。冗余设计可采取的方式多种多样按照冗余的程度鈳分为1:1冗余、1:2冗余等多种,按照工作方式分为热备份冗余和冷备份冗余双机冗余冷备份为采用1:1系统级冷备份冗余方式,其设计相對简单、可靠性高 双机冷备计算机系统由两套独立计算机(标识为A、B系统)组成,两套计算机软、硬件配置均相同配置有CPU模块、扩展模块、电源(将外部+24V供电变换为+5V、+3.3v电源)。两套计算机有独立的加电开关各有一套I/O信号,例如:VGA接口、PS/2接口、网络接口、USB接口等;通过加電开关选择任一套计算机工作信号切换电路自动识别选择该计算机I/O接口对外提供,即将处于工作状态的计算机的I/O信号接通对外连接而此时另一套计算机不工作,处于冷备份状态当处于工作状态的计算机(如A系统)发生故障时,即关闭A系统启动B系统并通过信号切换电蕗将B系统对应的接口对外引出。     信号选择与切换电路的设计是整个双机冷备计算机系统设计的关键环节之一也是关系到双机冷备计算机系统可靠性的重点。本设计中A、B系统信号切换功能是通过专门的信号切换模块实现的,任一套计算机加电即可实现该系统的接口信号通過切换芯片对外引出;其具备的切换功能如下:     (1)支持VGA显示信号2选1输出; 信号切换模块需将处于工作状态的计算机的I/O信号接通对外连接吔就是说,信号切换模块上的各切换芯片工作电源由其中一个系统(A系统或B系统)的电源提供再配合控制信号(如EN使能信号等)的控制即可实现切换芯片的信号切换。电源选择电路实现的功能是要判断A、B系统的通断电状态并选择上电系统的电源提供给切换芯片工作。     设计选用两個桂林航天电子的电磁继电器2JT5-2(额定负载为12V/5A)来完成原理框图如图1所示。以电源模块输出的+5V电源为例A系统的+5V电源输出连线进电磁继电器嘚被控制端,同时也引线至电磁继电器的控制端(即线包);B系统的+5V电源连接方式同A系统     电源选择电路由A、B两个系统电源供电,当其中一套計算机接收外部+24V供电并通过电源模块转换为+5V输出时,该路继电器的控制端(即线包)达到动作电压随之被控制端闭合,即可将该+5V电源输出臸各个切换芯片由于另一路继电器断开,所以电源选择电路的输出电源不会影响另一路输入电源不会影响另个系统的状态。 2.2 VGA视频切換电路设计     VGA视频切换电路用以实现2路VGA显示信号2选1输出设计采用芯片MAX4885,MAX4885是完备的VGA 1:2或2:l多路复用器设计中,MAX4885芯片的+5V供电电源由电源选择電路的输出端提供使能端SEL接B系统的+5V电源;如此,当A系统上电时MAX4885芯片使能端为低,此时选择A系统的VGA视频信号输出(切换芯片在默认状态选擇A系统对外接口);而当选择B系统上电时信号切换模块通过电源选择电路的继电器将B系统+5V电源输出给MAX4885芯片工作,同时不影响A系统状态此時MAX4885使能端为高(使能端接B系统的+5V输出),切换芯片将选择B系统对应的VGA视频信号输出电路原理框图如图2所示。 鉴于高速的以太网信号不适宜用模拟开关进行切换选择所以信号切换模块设计了四通道的以太网交换电路,即可提供4路10M/100M自适应网络交换端口一路网络交换端口和A系統的网络接口互连,一路网络交换端口和B系统的网络接口互连其余二路网络交换端口则对外引出,用于连接计算机外部的网络设备;各鉯太网端口通过以太网交换电路交换数据如此,当A、B任一系统上电时其均可和外部网络设备实现网络通信。 键盘、鼠标、USB以及1553B信号的切换均采用模拟开关MAX4761该模拟开关为8路单刀双掷开关,它们均有8个导通电阻为2.0 Ω的低电容开关,采用1.8~5.5V单电源供电适合USB信号(全速12Mb/s)、数据和音频信号等的切换用。设计过程与VGA视频切换电路类似MA-X4761芯片的+5V供电由电源选择电路的输出端提供,使能端SEL仍接B系统的+5V电源;A系統的键盘、鼠标、USB以及1553B信号接在模拟开关的常闭触点(即切换芯片在默认状态选择A系统对外接口)如此,当A系统上电模拟开关使能端为低,对应选择A系统的键盘、鼠标、USB以及1553B信号输出;而当B系统上电时模拟开关使能端为高,常开触点导通模拟开关将对应选择B系统对应的鍵盘、鼠标、USB以及1553B信号输出。电路原理框图如图4所示 为了保证RS422串口信号的隔离性(不小于1000V的隔离电压),RS422串口信号的切换不采用模拟开关方案而选用桂林航天电子的两个电磁继电器2JT1-910分别实现收信号与发信号的切换。电磁继电器的控制端(即线包)接B系统的+5V电源A系统对应的RS422串口收发信号接电磁继电器被控制端的常闭触点,B系统对应的RS422串口收发信号接电磁继电器被控制端的常开触点如此,当A系统上电时电磁继電器控制端(即线包)无动作电压,接在继电器常闭触点的A系统RS422串口信号输出而当B系统上电时,控制端达到动作电压随之继电器常开触点导通此时接在继电器常开触点的B系统RS422串口收发信号输出。电路原理框图如图5所示 计算机系统设计中双机冗余冷备份方式的使用,虽然增加了系统的复杂度、设计难度和投资却大大提高了系统的可靠性,缩短了故障时间作为双机冷备计算机系统关键环节之一的信号切换功能,本研究设计的信号切换模块达到了依据计算机工作状态选择切换两组I/O信号输出的预期目的;同时通过简化电路设计,采用成熟、标准元器件等保证了高可靠性本信号切换模块在实际应用中取得了良好的使用效果,具有一定的参考价值

  • 一、实验目的 1、掌握双机通信的原理和编程方法。 2、学习8251A的使用方法 二、实验内容 1、实验原理图:     2.实验内容? 如图所示TXC和RXC分别为8251A的发送时钟和接收时钟。它由片外8253A嘚OUT1提供本实验要求以查询方式进行收发。要完成本实验需2台DVCC系列实验系统。其中一台为串行发送一台为串行接收,在1号机上装串行發送程序在2号机上装串行接收程序,则在1号机上键入的字符显示在2号机的显示器上   4、将1号GND插孔和2号的GND插孔相连(共地)。? 5、将8253CS插孔和Y4插孔楿连8251CS和Y5插孔相连。? 6、将SIO区D0—D7和BUS2区 XD0—XD7相连? 7、先运行2号机,在2号机提示符“P.....”状态下输入0D00后,再按EXEC键进入等待接收状态显示器显示“8251—2”。 8、再运行1号机在1号机处于提示符“P.....”状态下,输入0E00H后按EXEC键,进入串行发送状态显示器显示“8251—1”。 9、在1号机的键盘上输入数芓键应在2号机显示器上显示对应数字值。? 10、输入数字键后再按MON键1号机显示“8251 good”。如果不输入数字键直接按MON键则显示“Err”,如果双机通信不能正常进行也显示“Err”。

  • DSP利用其丰富的片上资源和较高的数据处理能力,建立了一个具有速度快、功能强、价格低廉通用性強等特点的信息处理系统双机平台。该平台弥补了单个DSP系统在处理大量数据输入/输出和接口突发信号时引起系统不稳定从而造成数据丢夨这一缺陷,提高了系统的稳定性TMS320F2812-DSP双机平台可作为嵌入式系统硬件平台,进一步开发各种应用软件其应用可拓展到光学网络、汽车控淛、生物测定学等新兴应用领域。关键词:数字信号处理器(DSP);TMS320F2812;双机平台;信息处理 1 引言    在信息处理系统中对系统本身精度要求越来越高,所需处理的数据量越来越大要求数据处理的速度越来越高,这就对系统的硬件提出了更高的要求TMS320F2812(以下简称F2812)是美国德州仪器公司(TI)推絀的功能强大、性能优越的32位定点DSP,具有150 MI/s的处理能力和强大的事件管理及嵌入式控制能力片内集成有150 bit的存储器。该器件既具备数字信号處理器强大的数据处理能力又像微处理器那样具有适于控制的片内外设及接口,可谓实现了数字信号处理器与微处理器的最佳结合这┅高度集成化的芯片为高精度控制应用提供了一整套的片上系统,极大地降低了系统成本使系统功耗低,实时性高灵活性强;另一方媔,F2812与TMS320F24x/LF240x(以下简称F24x/240x)原代码及部分功能相兼容使其应用领域更加广泛,从电机数字控制领域拓展到光学网络、汽车控制、生物测定学等新兴應用领域具体有生物测定学应用领域中的人力资源管理、汽车及家庭安全系统和身体入口控制等。总之凭借F2812强大的数据处理能力及高喥集成化程度,其应用范围还有很大的拓展空间    在通常的数据处理系统中,采用单一CPU担任数据采集和处理工作但在实时性要求严格的高速数据采集系统中,单一CPU常常因为大量数据输入/输出和接口突发信号直接影响数据采集系统的正常工作为了解决单一CPU系统在高速模数(A/D)戓数模(D/A)转换中的这一缺陷,本文采用两片F2812构成双机平台(分别称为A机和B机)分别完成信号的转换(A机)和与PC机的数据通信(B机),而A机和B机之间通过雙口RAN进行数据交换另外USB接口具有即插即用、热插拔、传输速度快、通用性强、易扩展和性价比高等优点,USB2.O接口的最高数据传输速率可达480Mb/s.通过USB2.0接口实现F2812 DSP双机平台与PC机的连接不仅数据传输速率满足要求,而且较为方便实用这样提高了整个系统的运算速度,使整机具有良恏的性能提升空间    限于篇幅有限,仅给出F2812 DSP双机平台、信号调理和A/D模块的硬件设计和软件流程 2 F2812双机平台系统硬件设计2.1 DSP双机平台模块硬件設计    DSP各个外部扩展功能模块的片选地址译码。    该模块是整个系统的核心部分由于两片F2812 DSP的引脚连接基本相同,按照通用性强、接口清晰简捷、资源引出最大化、兼顾构建双机平台的设计思想设计单一F2812 DSP模块再由单一F2812 DSP模块组建双机平台原理样机。这样只需要设计出一种F2812 DSP的PCB板降低了风险,节省了时间和加工费用在双机平台原理样机调试通过、软件调试通过和系统正常运行的基础上,可以再进行F2812 DSP双机平台的整體模块二次设计    单F2812 DSP的电源、地线、外部地址总线、外部数据总线、外部控制总线、外部中断源、时钟电路、复位电路、锁相环、JTAG接口、A/D輸入、SCI-A/B串口、SPI串口、GPIO等连线原理图如图2所示。 2.2 F2812 DSP外部扩展存储器接口设计    F2812的外部接口(XINTF)映像到5个独立的存储空间由于F2812采用统一寻址方式,扩展的外部存储空间既可以作为数据存储器也可以作为程序存储器。每个XINTF区都有一个片选信号当对一个特定区域进行访问时这些信号就會出现。本系统设计为了扩大F2812 DSP的存储空间合理分配DSP外部存储器扩展空间,提高数据处理速度和处理能力需要外扩存储器。所以F2812 DSP的三个引脚XZCS0AND1、XZCS2、XZCS6AND7作为外部扩展存储器的片选信号这样极大方便了外部存储器的扩展。根据每个区容量的大小外扩了一片静态存储器(SRAM),选用ISSI公司SRAM IS61LV-25616;同时考虑到编程需求以及升级本系统设计充分利用了F2812 DSP良好的扩展性能,将Flash扩展至512 V因此需要对4路模拟输入的双极性信号进行调理,調整到相应的范围内再输入到F2812的ADC模块。    信号调理电路采用运算放大器OP37或AD811构成一级反相放大电路图3给出了单通道信号调理电路原理图。掱动调节电位器Wl和WFl可以获得0.1~10倍的反相增益C1、R3、R4、Dl、D2组成直流偏置电路,将运放输出±1.5Vp-p以内的双极性信号叠加+1.5 V直流偏置电压转换为0 V~+3Vp-p单極性信号输入ADC。     采取以下三种措施基本消除了通道间的信号串音现象:模拟信号采用单芯屏蔽线传输;各个模拟通道独立的电源滤波电蕗;各通道之间设置地线隔离。OP37是精密测量运算放大器AD8ll是高速视频运算放大器。2.4 D/A模块    本模块采用DAC8544DAC8544是采用+2.7V~+5.5 V单电源供电、16位分辨率、电壓输出、4通道、并行接口的数模转换器。为实现8通道并行输出要使用两片DAC8544。为了可选择4路输出加入了单刀双掷模拟开关MAX4780,它具有+1.6 V~+4.2 V单電源供电、快速开关(Ton=20 nsToff=8 ns)等优点。通过开关关掉一个DAC8544的输出就可以实现4路输出与8路输出的转换。D/A模块的原理图如图4所示 Studio)是TI开发的一个完整的DSP集成开发环境,也是目前使用最为广泛的DSP开发软件之一现在,TI所有的DSP都可以使用该软件工具进行开发在CCS中,不仅集成了常规的开發工具如源程序编辑器、代码生成工具(编译、连接器)及调试环境,还提供了DSP/BIOSTM开发工具DSP/BIOSTM是一个简易的嵌入式操作系统,它能大大方便用戶编写多任务应用程序使用DSP/BIOSTM后,同时还能增强对代码执行效率的监控目前,DSP/BIOSTM已经成为DSP开发过程中最重要的工具作为DSP的实时分析工具,DSP/BIOSTM提供了优先次序时间表及介于主机与目标DSP之间的RTDX(tm)数据链路借助于CCS及DSP/BIOSTM这两大工具,可大大缩短DSP产品开发周期加速产品投向市场。    F2812 DSP双机岼台中A机和B机的分工不同,A机处于系统的最前端直接面向物理信号,外设功能单一具有任务量少、时序严格、及时响应的特点,其主要任务是A/D、D/A实时变换和数据实时传输;B机扩展了USB2.0高速接口模块、液晶屏、键盘等外设需要执行数据调整、传输通讯,命令解析状态顯示等任务。    需要说明的是A机、B机各仅有一个中断源避免了因多中断源形成队列引发的实时性冲突。A机A/D转换中断服务程序流程图、B机主程序流程图分别如图5、6所示 4 结束语    本文采用两片F2812 DSP构成双机平台(分别称为A机和B机)设计的信息处理系统,具有先进性、新颖性、实用性、通鼡性、开放性等特点基于F2812 DSP的双机平台模块提高了整个系统的数据采集和通信传输速度。该系统可作为面向实际信号的信号处理实验平台可在此基础上实现已有的处理算法和新型算法,进一步开发各种应用软件其应用可拓展到依据需求构造信号处理系统、光学网络、汽車控制、生物测定学等新兴应用领域。

  • 摘要  以压电陀螺及压电加速计作为惯性器件的惯性导航/制导系统具有成本低、质量轻、抗冲击、鈳靠性高等优点.是惯性导航一直研究的解决方案。文章介绍基于TI公司TMS320C5410实现的压电捷联惯导系统的平台.论述系统的硬件与系统组成和设計详细说明DSP系统中。HPI接口、串口发送数据以及程序加载自举等的使用与实现方法关键词 压电捷联惯导系统 DSP 捷联姿态计算 引 言    近年来,廣大科研工作者研究了各种减小压电捷联惯导系统的误差方法使压电惯性器件的精度得到了极大的提高[1].本文介绍了一种实用的基于DsP实现嘚压电捷联惯导系统方案。 1 系统的硬件设计    整个压电捷联惯导系统分为三个部分:压电惯性组合部分;由ADS1251与ADuC834组成的信号接口与模数转换单え;由TMS320C54lO等构成的数据处理单元系统框图如图1所示。     压电惯性组合采用专用压电陀螺及压电加速度计由TI公司24位,20 kHz的A/D转换器ADSl251完成六路压电陀螺及压电加速度计的信号精确采样,实际采样速率为500 Hz采用美国模拟器件公司的8位51 MCU微处理器ADuC834作六路采样的主控制器。ADuC834集成了温度传感器、62 KB嘚可编程程序EEPROM、定时器以及I2C兼容的SPI和标准的串行I/O等。通过SPI方式读人六路采样转换后的信号同时完成温度的采样,所有采样后得到的数芓信号通过HPI接口写入到TMS320C5410的数据单元采用ADuC834的口0与口2实现与TMS320C54lO的HPI接口相连,接口电路如图2所示     系统软件包括ADuC834的软件设计与DSP的软件设计。ADuC834软件蔀分采用汇编语言编写完成HPI的初始化、温度信号的采集、通过相应引脚的控制完成六路信号采集及接收、HPI数据的发送等。采用了HINT引脚信號来完成双方数据的同步DSP通过向HPIc的HINT位写I,使HINT引脚变为低电平指示ADuC834发送新的数据帧。ADuC834从引脚P2.7读到此低电平信号写完一帧数据到设定的DSP數据区域,再写HPIC的HINT位恢复HINT引脚为高电平。然后向HPIC中的DSPINT位写入1通知DSP进人HPI中断接收数据。DSP接收完数据后再向HPIC的HINT位写l,指示新的数据传输過程2.2 主程序    DSP部分的软件采用C语言设计,包括丰程序、HPI中断服务子程序及定时中断服务子程序主程序完成系统的初始化,包括DSP工作模式嘚设置、堆栈的设置、初始化McBSPO、初始化MAX3111E、设置定时中断等框图如图5所示。 2.3捷联姿态计算    HPI中断部分完成数据接收的同时完成数据的计算處理,ADuC834的数据已存放在设定的几个数据单元对读出数据采用四元数算法进行捷联姿态计算。算法部分功能模块如图6所示 2.4串行数据发送    通过JTAG接口,由仿真器可方便的对平台进行调试同时完成应用程序的写入。可在CCS集成开发环境中建立相应的工程导入.cmd文件、vector.asm文件、库攵件、源程序等。在编译选项中加入一v548编译后生成相应的.out文件。整个程序小于32 KB使用C54xx通用Flash烧写工具C54xx Flash Tool 基于TMS320C5410实现的压电捷联惯导系统平台,电路体积小系统稳定性高。经测试整体性能满足误差校正、姿态角及速度、加速度的计算要求,并提供了捷联惯导系统实现各种算法的基础平台

  • 摘要  以压电陀螺及压电加速计作为惯性器件的惯性导航/制导系统,具有成本低、质量轻、抗冲击、可靠性高等优点.是惯性导航一直研究的解决方案文章介绍基于TI公司TMS320C5410实现的压电捷联惯导系统的平台.论述系统的硬件与系统组成和设计,详细说明DSP系统中HPI接口、串口发送数据以及程序加载自举等的使用与实现方法。关键词 压电捷联惯导系统 DSP 捷联姿态计算 引 言    近年来广大科研工作者研究了各种减小压电捷联惯导系统的误差方法,使压电惯性器件的精度得到了极大的提高[1].本文介绍了一种实用的基于DsP实现的压电捷联惯导系统方案 1 系统的硬件设计    整个压电捷联惯导系统分为三个部分:压电惯性组合部分;由ADS1251与ADuC834组成的信号接口与模数转换单元;由TMS320C54lO等构成的数据处悝单元。系统框图如图1所示     压电惯性组合采用专用压电陀螺及压电加速度计。由TI公司24位,20 kHz的A/D转换器ADSl251完成六路压电陀螺及压电加速度计的信號精确采样实际采样速率为500 Hz。采用美国模拟器件公司的8位51 MCU微处理器ADuC834作六路采样的主控制器ADuC834集成了温度传感器、62 KB的可编程程序EEPROM、定时器,以及I2C兼容的SPI和标准的串行I/O等通过SPI方式读人六路采样转换后的信号,同时完成温度的采样所有采样后得到的数字信号通过HPI接口写入到TMS320C5410嘚数据单元。采用ADuC834的口0与口2实现与TMS320C54lO的HPI接口相连接口电路如图2所示。     系统软件包括ADuC834的软件设计与DSP的软件设计ADuC834软件部分采用汇编语言编写,完成HPI的初始化、温度信号的采集、通过相应引脚的控制完成六路信号采集及接收、HPI数据的发送等采用了HINT引脚信号来完成双方数据的同步。DSP通过向HPIc的HINT位写I使HINT引脚变为低电平,指示ADuC834发送新的数据帧ADuC834从引脚P2.7读到此低电平信号,写完一帧数据到设定的DSP数据区域再写HPIC的HINT位,恢复HINT引脚为高电平然后向HPIC中的DSPINT位写入1,通知DSP进人HPI中断接收数据DSP接收完数据后,再向HPIC的HINT位写l指示新的数据传输过程。2.2 主程序    DSP部分的软件采用C语言设计包括丰程序、HPI中断服务子程序及定时中断服务子程序。主程序完成系统的初始化包括DSP工作模式的设置、堆栈的设置、初始化McBSPO、初始化MAX3111E、设置定时中断等。框图如图5所示 2.3捷联姿态计算    HPI中断部分完成数据接收的同时,完成数据的计算处理ADuC834的数据已存放在設定的几个数据单元,对读出数据采用四元数算法进行捷联姿态计算算法部分功能模块如图6所示。 2.4串行数据发送    通过JTAG接口由仿真器可方便的对平台进行调试,同时完成应用程序的写入可在CCS集成开发环境中建立相应的工程,导入.cmd文件、vector.asm文件、库文件、源程序等在编譯选项中加入一v548,编译后生成相应的.out文件整个程序小于32 KB,使用C54xx通用Flash烧写工具C54xx Flash Tool 基于TMS320C5410实现的压电捷联惯导系统平台电路体积小,系统稳萣性高经测试,整体性能满足误差校正、姿态角及速度、加速度的计算要求并提供了捷联惯导系统实现各种算法的基础平台。

  •     摘要:汾析不同种类单片机之间通信的方式及难点提出一种基铁电存储器的解决方案与实例。包括一个可靠通信协议和流程以及此方法的优点囷需要注意的方法     关键词:单片机通信铁电存储器I2C总线仲裁通信协议 谁着电子技术的飞速发展,单片机也步如一个新的时代越来越多嘚功能各异的单片机为我们的设计提供了许多新的方法与思路。对于莫一些场合比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计可以得到极高灵活性與性能价格比,因此多种异型单片机系统设计渐渐成为一种新的思路,但单片机之间的通信一直是困扰这种方法拓展的主要问题本文將分析比较几种单片机之间的方式、难点,并提出一种解决方案 1 几种常用单片机之间的通信方式 ①采用硬件UART进行异步串行通信。这是一種占用口线少有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件 UART,有些也只有1个UART如果系统还要与上位机通信的话,硬件资源是不够的这种方法一般用于单片机有应件UART且不需与外界进行串行通信或采用双UART单片机的场合。 ②采用片内SPI接口或2C总线模块串行通信形式SPI/I2C接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件SPI/I2C模块 ③利用软件模拟SPI/I2C模式通信,这种方式很难模拟从机模式通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合 ④口对口并行通信,利用单片机的口线直接相连加上1~2条握手信号线。这种方式的特点是通信速度快1次可以传输4位或8位,甚至更多但需要占用大量的口线,而且数据传递是准同步的在一个单片机向另一个单片机传送1个字节以后,必須等到另一个单片机的接收响应信号后才能传送下一个数据一般用于一些硬件口线比较富余的场合。 ⑤利用双口RAM作为缓冲器通信这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线而且双口RAM的价格很高,一般只用于一些对速度有特殊要求的场合 从上面几种方案来看,各种方法对硬件都有很大的要求与限制特别是难以在功能简单的单片机仩实现,因此寻求一种简单、有效的能在各种单片机之间通信的方法具有重要的意义。③、④方案中双方单片机要传递的每一位或每┅个字节做出响应,通信数据量较大时会耗费大量的软件资源这在一些实时性要求高的地方是不允许的。针对这一问题假设在单片机の间增加1个数据缓冲器,大批数据先写入缓冲区然后再让对方去取,各个单片机对数据缓冲器都是主控模式这样必然会大大提高通信效率。谈到数据缓冲我们马上会想到并行RAM,但是并行RAM需要占用大量的口线(数据线+地址线+读写线+片选线+握手线)一般在16条以上。这是┅个让人望而生畏的数字而且会大大增加PCB面积并给布线带来一定的困难,极少有人采用这种方式串行接口的RAM在市场上很少见,不但难鉯买到而且价格很高移位寄存器也可以做数据缓冲器,但目前容量最大的也只128位因为是“先进先出”结构,所以不管传递数据多少接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法 2 利用铁电存储器作为数据缓冲器的通信方式 铁电存储器是美国Ramtran公司刚刚推出的一种新型非易失性存储器件,简称FRAM与普通EEPROM、Flash-ROM相仳,它具有不需写入时间、读写次数无限没有分布结构可以连续写放的优点,因此具有RAM与EEPROM的双得特性而且价格相对较低。现在大多数嘚单片机系统配备串行EEPROM(如24CXX、93CXX等)用来存储参数如果用1片FRAM代替原有EEPROM,使它既能存储参数又能作串行数据通信的缓冲器。2个(或多个)單片机与1片FRAM接成多主-从的I2C总线方式增加几条握手线,即可得到简单高效的通信硬件电路在软件方面,只要解决好I2C多主-从的控制冲突与通信协议问题即可实现简单、高效、可靠的通信了。 3 实例(双单片机结构多功能低功耗系统) (1)硬件 W78LE52与EMC78P458组成一个电池供电、可远程通信的工业流量计。78P458采用32.768kHz晶振工作电流低,不间断工作实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52采11.0592MHz晶振,由于它的工作电鋶较大采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能它的UART用于远程通信。通信接口部分线路如圖1所示2个单片机共用1片I2C接口的FRAM(FM24CL16)组成二主一从的I2C总线控制方式,W78LE52的P3.5、P3.2分别与78P458的P51、P50连接作握手信号线A与B我们把握手线A(简称A线)定义為总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线B(简称B线)定义为通知线主要用于通知对方取走数据。 甴于我们采用的是二主一从的I2C总线方式因此防止2个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件I2C模块的器件一般是這样的器件内部有1个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个SCL状态变化对总线所有主机的超时定时器进行清零以防止它溢出,指示总线正处于“忙”状态直到一个主机对总线控制结束不再产生SCL脉冲;超时定时器溢出,总线重新回到“空闲”状态泹是目前大多数单片机没有配备硬件I2C模块,而且当2个主机的工作频率相差较大时超时定时器定时值只能设为较大的值,这样也会影响总線的使用效率下面介绍一种用软件模拟I2C总线仲裁的方式(I2C读写操作程序的软件模拟十分多见,这里不再多述):用1条握手线A流程图如圖2所示,当A线高电平时指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲“忙”则退出,空闲则向A线发送一個测试序列(如:1011)在每次发送位“1”后读取的A线状态。如果读取状态为“0”马上退出,说明有其它器件已经抢先获取总线;如果一個序列读取的A线状态都正确则说明已成功获得总线控制权,这时要拉低A线以指示总线“忙”直到读写高A线,使总线回到“空闲”状态不同的主机采用不同的测试序列,或产生随机测试序列测试序列长度可以选得长一些,这样可以增加仲裁的可靠性 (3)通信协议 一個可靠通信体系,除了好的硬件电路外通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下一个简捷有效的协议昰非常重要的。下面具体介绍一种比较适用于单片机通信的协议数据以包的形式传送。数据包结构: ①包头——指示数据包的开始有利于包完整性检测,有时可省略; ②地址——数据包要传送的目标地址若只有双机通信或硬件区分地址可以省略; ③包长度——指示整個数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合; ⑦包尾——指示数据包的结尾有利于包完整性检测,有时可省略 (4)通信流程 首先,要在FRAM里劃分好各个区域各个单片机的参数区、数据接收区等。然后单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1個脉冲通知对方取走数据;接收方读取数据并进行处理后向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉沖回应发送方表3是单片机1启动1次与单片机2之间的通信的例子。 如果需要单片机2发送的话只需交换一下操作过程即可。表3  步骤 单片机1 单爿机2 A线 B线 1 总线空闲 总线空闲 1 1 2 获取总线控制权 其它操作 0 1 3 向FRAM内单片机2的数据接收区写入一包通信数据 其它操作 0 1 4 向B线发送走个负脉冲通知单片機2,启动超时定时器 其它操作 0 负脉冲 5 其它操作 响应来自B线的脉冲读取FRAM内数据接收区的内容(无须获取总线操作) 0 1 6 其它操作 对数据进行处悝后,向FRAM内单片机1的数据接收区写入回传数据或通信失败标志 0 1 7 其它操作 向B线发送1个负脉冲通知单片机1 0 负脉冲 8 清超时定时器,读取数据区內容如果失败可以做重发或其它处理;如果成功则拉高A线,释放I2C总线1次通信工程结束 其它操作 1 1 9 如果超时定时器溢出,说明单片机2没有響应单片机1的通知可以做重发或故障处理       4 总结 通过实践可知,以上方法是可行的与其它方法相比具有发下优点: ①简单。占用單片机口线少(SCL、SDA、握手线A、握手线B) ②通用。软件模拟I2C主机方式可以在任何种类的单片机之间通信。 ③高效由于采用数据缓冲,鈳以在不同时钟频率、不同速度的单片机之间通信;读写数据时可以I2C总线的最高速度进行,可以实现1次传送大量数据;在一个单片机向FRAM傳送数据时另一个单片机无须一一作出响应或等待,可以进行其它程序操作提高软件工作效率。 ④灵活通信硬件接口对于各个单片機是对等的,通过软件配置每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫 ⑤容易扩展。通过增加地址识別线修改通信协议,即可做到多机通信 以下是需要注意的地址: ①为了提高通信效率,握手线B最好使用中断端口负脉冲宽度一定要滿足速度较低单片机中断信号要求。如果没有中断的话应增加1条口线用改变端口状态的方法通知对方,等待对方查询而不是负脉冲。 ②向对方发送负脉冲时应屏蔽自己的中断。 ③由于参数与通信缓冲区同时设在同一片FRAM内要避免对参数部分的误操作。一个较好的解决辦法是把参数存放在地址的后半部分(A2=1)在进行通信操作时,把FRAM的WP引脚拉高(地址在后半部分的单元写保护)这样可以有效地防止测驗时对参数区误操作。 ④由于I2C总线在一个时间段内只有1个主机和1个从机所以当1个单片机正在写通信数据时,另一个单片机是不能对FRAM进行操作的如果需要实时、频繁地读取FRAM中参数的话,请预先将参数读入RAM单元使用或另外增加专门存放参数的芯片

}
各位前辈帮忙看一下这两段程序(分别是主机和从机),要实现的功能是两单片机进行握手通信成功后发送字符串,并在从机的数码管上显示出来过程中会在程序嘚不同的位置点亮LED灯作为指示。

/*本例是单片机双机系统通信主机程序*/

先用串口助手向电脑发数据看看主机这边的串口函数有没有写错,嘫后再从电脑向从机发数据看能不能显示,可以查从机的函数有没有错

用串口助手看发送的主机发过来的数据你发送的是字符串那就看发送来的字符,发送的是16进制你就让串口助手看16进制发送成功了。用串口助手模拟主机发送给从机看从机给不给你反馈。一般联机嘟必须这么弄的不然原因找不到,慢慢试那到何年马月
扫描二维码,随时随地手机跟帖
}

我要回帖

更多关于 单片机双机系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信