程睿
浙江大唐乌沙山发电有限责任公司-维护部
摘要:使用USB串口进行通信,传输数据信息,是目前串口通信的主流技术。基于单片机(STC89C52RC)实现双机异步通信系统的设计,参考了广泛使用的USB技术,将多路电压采样系统的数据通过快速的USB串口通信传送到上位机。
设计过程中主要做了以下工作:
(1)充分调研了国内外相关文献有关单片机通讯方式的研究现状。
(2)详细论证了系统功能实现所依托的设计思路,对双机间USB串行通信功能、多路电压测量功能、液晶显示功能进行了深入的研究。
(3)进行了硬件电路设计与软件设计,并用仿真电路和软件验证了设计功能的实现。
双单片机UBS通讯系统,具有成本低、功能好、通讯速度快、性价比高,可靠性好等特点,在工业、农业、家电、通讯等领域具有重要的实用价值。
自动控制与智能控制在生活中的例子随处可见,比如用于家庭生活的智能音箱、家居机器人、智能家居防盗系统,再如用于工业界的流水机械化自控车床、智能运输小车等、复杂工业过程控制系统等。由此可见,对自动控制技术与智能控制技术的设计进行研究,对工业生产、便利民生等方面有着重要的现实意义 随着近几十来年微电子技术突飞猛进的发展,单片机控制技术愈发成熟、可靠、高效。单片机体积小、功能强、性能优、成本低,得到了广泛的应用。基于合理、专业、优化的硬件布局和设计工具的利用,并与软件相结合,取代了过去的庞大的电子电路和基本数字电路。经由软件对核心电路进行的控制,确保自动控制或智能控制的实现。单片机应用于大规模的智能化、自动化产品中,软件是单片机的产品的核心,软件的升级直接使产品升级更加方便。
多机通信又可以分为单台单片机同上位机PC端的通信、单台单片机同其他单片机的通信。由于PC端作为分布式控制系统的上位机,通信方式简便可靠。而在复杂控制系统内部,大多场景都是由单片机与单片机结合组成地集散分布式网络系统,从而通过各单片机信息交互共享再传至PC端,带动复杂控制系统合理正常运行。考虑到复杂控制系统行为复杂且内部通信难以准确观测,多点通信过程容易出现随机单点通信故障等异常状况,给研究多台单片机之间的通信过程带来了极大的分析困难,不利于系统的稳定运行与故障的及时排查。因此,研究多个单片机之间的可靠通信具备极高的应用需求与学术价值。
多单片机之间的通信应从最小多机系统开始着手研究,因此,从双单片机通信进行研究入手,为拓展到更多数量的多机通信提供理论分析支撑,奠定研究基础。双单片机通信可以分为并行通信与串行通信。并行通信具有通信速度快、多个通道并行可供数据传输以及数据不宜失真的优点,但是其不适用于远距离数据传输通信。串行通信的通信速度相对较慢,但相比于并行通信传输信息质量较高,在远距离数据传输种具有较大的优势,其传输数据相对稳定可靠,数据丢包率较低,但在传输速度上则有所取舍,相较并行通信有着明显的优势。串行通信可以划分为两类:异步通信和同步通信。串行通信的方式主要有:USB异步串行通信、片内SPI接口和I2C总线模块串行通信等。其中USB异步串行通信具有口线少、频率高、可靠性高的特点,是现代通信产品中的首选技术,USB异步串行通信广泛应用在通信领域。设计对双机之间通过USB进行异步串行通信的研究具有重要的应用价值。
目前国内外对双单片机通讯方式的研究方向主要集中以下几个类型:
(1)硬件USB异步串行通信。特点是工作口线占用少,通信有效、可靠;但是大部分小型单片机并没有足够的外设USB接口来实现此功能。
(2)单片机片内SPI接口或I2C总线模块串行通信,适用于通信量少的场合。其特点是操作使用简单,有现成较为成熟的硬件电路。
同样的,其缺点在于目前大多数单片机缺少硬件SPI/I2C模块,通信效率不高。
(3)口对口并行通信。直接由单片机的端口由传输数据线连接进行双机交互通信,具有通信速度快、同步同期传递数据、双向传递数据的优点。缺点在于在传输大量数据时,需要占用大量的端口,适用于一些硬件口线比较富余的场合。
(4)双口RAM并行通信,通信速度很快,缺点是占用口线的需求量极大,此外,双口RAM售价昂贵,给这种通信方式的性价比大打折扣。
此次设计拟基于两台51系列的STC89C52RC单片机,开发一组双机USB串行通信与电路测量系统,拟完成功能目标如下:
(1)单片机甲连接有显示器,能够通过键盘键入信息以及通过显示器对接收信息进行显示
(2)单片机乙连接有A/D转换模块与电压测量电路。电压测量电路设计为可对8路电压进行测量,测量范围在0到20V之间,测量精度控制在1%以内。
(3)两台单片机之间进行串行通信,可将单片机乙得到的电路电压测量数据传输至单片机甲,然后由单片机甲外连的液晶显示电路完成对应显示功能。
设计思路如下
首先对双机间的通信方式进行调研论证,在串行通信与并行通信之间选择串行通信。根据系统功能需要,在单工通信、半双工通信、双工通信模式之间选择合适的通信模式,系统主要将单片机乙测量采集到的电压信息传输到单片机甲。然后对单片机外设模块进行设计。
(1)对电压测量模块进行设计,采用ADC0808作为A/D转换模块设计电压采集电路,将采集到的8路输入电压经A/D转换成数字信号传至到单片机乙中处理。
(2)设计液晶显示模块,采用LCD1602作为显示器,能对采集到的电压数据信息进行显示。
(3)设计电源供电电路,为双单片机系统与各外设模块电路的正常工作进行供电操作。
系统由两台STC89C52RC单片机(甲/乙)构成的双单片机系统、ADC0808模数转换器构成的数模转换电路、LCD1602芯片构成的液晶显示电路、时钟信号触发电路、复位电路、电压发生电路、电源供电电路几部分组成。电压发生电路用来产生8路电压,每路电压由滑动变压器/电位器进行调节,范围在0-20V,产生的电压输入至ADC0808芯片,将模拟信号转化为数字信号输入至AT89C52单片机乙,单片机乙经串行通信将数据传输给AT89C52单片机甲,单片机甲将数据传输至液晶显示电路,由LCD1602芯片作为显示电路核心完成显示功能。
设计论文的目标功能进行了陈述与介绍,论证了为实现该论文预期功能目标的思路设计,对双机通信的不同模式的优缺点进行比较论证,对系统功能整体实现进行了统筹设计。明确了为完成预期功能目标所需要的模块与准备工作。
参考文献
[1]UniversalSerialBusSpecificationRevision1.1UniversalSerialBusSpecificationCompaq[R].Intel,Microsoft,NEC,Revision1.1.September23,1998.
[2]IntelUniversalHostControllerInterface(UHCI)DesignGuide[M].Re2vision1.1,March1996.
[3]刘少锋,韦克平.USB软件系统的开发[J].计算机应用研究,2002,(3):102-104.
[4](美)AxelsonJ.UniversalSerialBusComplete[M].陈逸,等译.中国电力出版社,2001.38-92.