基于多单片机的串口扩展设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于多单片机的串口扩展设计

基于多单片机的串口扩展设计   1 前言   笔者在用单片机开发一款称重仪表时,功能较多,对串口的需求很高。需要的串口数量多,至少要五个串口,包括称重传感器通信串口,电脑上位机通信串口,GIM900A 通信串口,大屏幕数码管显示的通信串口,打印模块的通信串口等。而且对串口要求稳定性高,大部分串口都要求实时双工通信。根据实际情况和产品串口需求,采用不用的方法进行串口扩展,主要用到了模拟串口和多单片机实现串口扩展。   2 串口扩展的一般方法   (1)模拟串口。模拟串口利用其他单片机引脚模拟串口收发时序进行串口扩展。这种串口扩展,缺点比较明显,通信速率慢,可靠性不高,占用CPU 资源较多。高速双工通信时一般不用此方案进行串口扩展,低速情况下可以考虑。笔者的项目中大屏幕数码管显示就用了这种方案,显示的时候只发不收,单向通信,波特率要求低,最高不过9600bps。   (2)利用专门的串口扩展芯片处理。串口扩展芯片进行串口扩展,通信稳定性高,能达到一般的串口要求。市场上的串口扩展芯片,性能不同,价格也不一样,但普遍成本较高,少则二三十元,多则七八十元,不利于产品的成本控制。串口需求较多时,一块串口扩展芯片上串口数量不足,还需要多块串口扩展芯片级联,更增加了成本。   (3)利用多串口单片机。目前市场上有多串口的单片机,很多低成本单片机都自带两个串口,比如stc12 多串口系列。用三串口及其以上的单片机成本更贵。   (4)基于多单片机的串口扩展设计。在一定成本要求下,结合目前单片机产品自身的优势,利用多单片机进行串口扩展,也是一种串口扩展的方案。一般c51 系列单片机自带双串口的只要几元钱,完全可以把单片机用来做串口扩展,而且有的单片机自带spi 通信接口,可以很方便的实现主从单片机之间的级联和通信,同时双单片机工作时,可以利用从单片机处理一定的程序,减轻主单片机的负担,达到“双核”效果。   3 基于多单片机的串口扩展设计   3.1 串口扩展系统框图   整个系统由两块单片机构成主从结构,主机完成产品的大部分功能,从机只是进行了串口扩展,扩展出了两个双工硬件串口,如果有需要,也可以分担部分主机的其他功能。两者之间通过SPI 硬件接口通信,该硬件SPI 总线是一种全双工、高速、同步的通信总线,支持主模式和从模式两种操作模式,主模式中支持高达3Mbps 的速率,完全可以完成主机和从机之间的可靠通信。主机和从机的串口通信,和一块单片机使用时的用法一样,只是先要经过SPI 传输。当需要向从机串口发数据时,先要通过主机的SPI 通信送给从机,再通过从机串口发给外围模块;当需要接收从机串口数据时,先从机接收到串口数据,从机再利用SPI 传输给主机。在进行软件开发时,只要定义好主机和从机的SPI 通信协议,即可完成可靠的串口数据收发。   3.2 主机和从机之间的SPI 通信   主机和从机串口之间需要SPI 通信做桥梁,因此主从机之间的SPI 通信显得极其重要,必须要求高速、可靠、实时,一次SPI 采用中断完成。主机部分需要用到常用的四个函数,即主机SPI 初始化,SPI 主从机之间的数据交换,向从机发送数据,主机SPI 中断接收等。   1) 主机SPI 初始化:   SPDAT=0;   SPCTL=0xfd;   SPSTAT=0xc0;   IE2=IE2 | 0x2;   2) 主机SPI 数据交换   SPDAT = dat;   while (!(SPSTAT amp; SPI_SPIF));   SPSTAT = 0xc0;   return SPDAT;   3) 向从机发送字符串数据   SPCTL = 0xfd;   IE2=IE2 amp; 0x01;   SPISS=0;   4)SPI 接收中断函数   uchar ucRecvSpi;   SPDAT=SPDAT;   SPSTAT = 0xc0;   ucRecvSpi=SPDAT;   ??//SPI 接收到的数据处理   ?循环SPI 数据交换   发送字符串   SPISS=1;   SPCTL = 0xec;   IE2=IE2 | 0x3;   从机部分也需要用到主机一样的四个函数,即从机SPI 初始化,SPI 主从机之间的数据交换,向主机发送数据,从机SPI中断接收等。程序函数与主机大部分相同,只有细微区别。在从机SPI 初始化时,SPCTL

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档