1、第10章 单片机应用系统设计选题10.1 基于单片机的温度检测系统设计10.2 基于单片机控制的智能充电器设计10.3 基于单片机的红外通信系统设计10.4 主从式多机通信系统设计10.5 CAN总线站点设计与通信实验10.6 利用单片机和GSM模块实现短消息通信10.7 基于单片机的安全计算机结构设计与实验10.8 基于单片机的步进电机控制系统设计10.9 基于单片机的无刷直流电机调速器设计10.10 简易MP3播放器设计 10.1 基于单片机的温度检测系统设计 温度检测通常可利用温度传感器和单片机来实现。常用的温度传感温度检测通常可利用温度传感器和单片机来实现。常用的温度传感器有热电偶、热
2、敏电阻以及集成温度传感器等。热电偶通常用于工业炉器有热电偶、热敏电阻以及集成温度传感器等。热电偶通常用于工业炉等高温环境;热敏电阻的阻值随温度变化而变化,测量其电阻值即可得等高温环境;热敏电阻的阻值随温度变化而变化,测量其电阻值即可得到环境温度;集成温度传感器内部集成有感温元件、补偿和放大电路等,到环境温度;集成温度传感器内部集成有感温元件、补偿和放大电路等,具有误差小、体积小、使用方便等优点,如具有误差小、体积小、使用方便等优点,如AD590AD590、DS18B20DS18B20等。本例使等。本例使用用PICPIC单片机、测温型热敏电阻或集成温度传感器单片机、测温型热敏电阻或集成温度传感器
3、DS18B20DS18B20设计一个温度设计一个温度检测系统,以掌握温度传感器在单片机系统中的使用方法。检测系统,以掌握温度传感器在单片机系统中的使用方法。 10.1 温度检测:系统组成 温度检测系统由温度敏感电路、温度检测系统由温度敏感电路、PICPIC单片机及显示和报警电路组成,单片机及显示和报警电路组成,本例采用两种温度敏感电路来实现温度测量。一种是使用热敏电阻,利本例采用两种温度敏感电路来实现温度测量。一种是使用热敏电阻,利用它和用它和555555芯片组成振荡电路,其振荡频率随着热敏电阻的阻值的变化芯片组成振荡电路,其振荡频率随着热敏电阻的阻值的变化而变化,利用单片机测量出振荡器输出信
4、号的频率,再通过查表或计算而变化,利用单片机测量出振荡器输出信号的频率,再通过查表或计算即可得到温度。另一种是采用单总线集成数字温度传感器即可得到温度。另一种是采用单总线集成数字温度传感器DS18B20DS18B20直接直接测得温度,利用单片机构造适当的时序,以从测得温度,利用单片机构造适当的时序,以从DS18B20DS18B20中取得数据。温中取得数据。温度的测量值用数码管显示,并在超过限定温度时用蜂鸣器报警。系统组度的测量值用数码管显示,并在超过限定温度时用蜂鸣器报警。系统组成结构见下图。成结构见下图。 10.1 温度检测:系统组成温度检测系统结构框图温度检测系统结构框图 10.1 温度检
5、测:设计要求 选用选用PIC16C54PIC16C54型单片机进行设计。在调试过程中采用可重复编程的型单片机进行设计。在调试过程中采用可重复编程的PIC16F54PIC16F54型单片机,程序定型后采用型单片机,程序定型后采用PIC16C54PIC16C54型单片机。型单片机。 方法一方法一:自行设计温度敏感电路,该电路主要由负温度系数的测温:自行设计温度敏感电路,该电路主要由负温度系数的测温型热敏电阻和型热敏电阻和555555器件组成。建议选用标称阻值为器件组成。建议选用标称阻值为5 510K10K、B B值为值为34703470的负温度系数热敏电阻。的负温度系数热敏电阻。 方法二方法二:选
6、用单总线器件:选用单总线器件DS18B20DS18B20设计温度敏感电路。设计温度敏感电路。 温度的测量范围为温度的测量范围为-10-10+120+120,测量精度为,测量精度为0.50.5。 温度用四位数码管实时显示。温度用四位数码管实时显示。 在温度超过在温度超过100100时利用蜂鸣器发出警报。时利用蜂鸣器发出警报。 10.1 温度检测:设计提示 负温度系数的测温型热敏电阻的电阻负温度系数的测温型热敏电阻的电阻- -温度特性为:温度特性为: 其中,其中,T0T0是热敏电阻在绝对温度下的阻值;是热敏电阻在绝对温度下的阻值;RT0RT0是热敏电阻在绝对温是热敏电阻在绝对温度下的阻值,即标称阻
7、值;度下的阻值,即标称阻值;B B称为热敏电阻的热敏指数。在购买热敏称为热敏电阻的热敏指数。在购买热敏电阻时,必须要明确标称阻值和电阻时,必须要明确标称阻值和B B值这两个指标。值这两个指标。 检测温度有直接法和间接法。直接法通过采样热敏电阻上的电压和检测温度有直接法和间接法。直接法通过采样热敏电阻上的电压和电流,计算其电阻,查表得到温度。这种方法需要电流,计算其电阻,查表得到温度。这种方法需要A/DA/D转换电路。间转换电路。间接法是指将热敏电阻作为振荡电路的一个元件,振荡输出随阻值变接法是指将热敏电阻作为振荡电路的一个元件,振荡输出随阻值变化而变化,化而变化,CPUCPU检测到这种变化,据
8、此可检测出温度。比如,将热敏检测到这种变化,据此可检测出温度。比如,将热敏电阻和电阻和555555器件组成多谐振荡器,其输出频率就与热敏电阻的阻值对器件组成多谐振荡器,其输出频率就与热敏电阻的阻值对应,由此可检测出温度值。应,由此可检测出温度值。 使用频率法测量温度时,为了防止电源电压波动引起的干扰,可采使用频率法测量温度时,为了防止电源电压波动引起的干扰,可采用测量波形的占空比来代替测量波形的频率。用测量波形的占空比来代替测量波形的频率。0011exp()TTRRBTT 10.1 温度检测:设计提示 采用采用DS18B20DS18B20设计时,应参考其数据手册,了解单总线器件的使用方设计时,
9、应参考其数据手册,了解单总线器件的使用方法。法。DS18B20DS18B20内部集成有补偿电路和内部集成有补偿电路和A/DA/D转换器等,它输出的温度数转换器等,它输出的温度数据直接就是数字量,因此具有模块化、精度高等优点。其缺点是成据直接就是数字量,因此具有模块化、精度高等优点。其缺点是成本较高,同时利用单总线读取数据需要较长的时间。在对成本和实本较高,同时利用单总线读取数据需要较长的时间。在对成本和实时性要求不高的场合,可优先采用时性要求不高的场合,可优先采用DS18B20DS18B20进行设计。进行设计。 单总线器件与单片机接口时只占用单片机的一位单总线器件与单片机接口时只占用单片机的一
10、位I/OI/O口,而且具有信口,而且具有信号传输距离远的优点,但单片机对它的读写要占用较长的时间。在号传输距离远的优点,但单片机对它的读写要占用较长的时间。在集总式设计场合,中央处理器要采集大量数据,因此不能在每路信集总式设计场合,中央处理器要采集大量数据,因此不能在每路信号的读写上都花费大量时间,此时,可以用号的读写上都花费大量时间,此时,可以用FPGAFPGA或或CPLDCPLD等器件专门等器件专门进行多路信号的串并转换工作,并通过中断方式与进行多路信号的串并转换工作,并通过中断方式与CPUCPU交换数据。交换数据。 10.2 基于单片机控制的智能充电器设计 充电电池广泛应用于工业生产和日
11、常生活中,其充放电过程对电池充电电池广泛应用于工业生产和日常生活中,其充放电过程对电池 的安全使用、寿命等具有重要影响。传统的模拟电路充电器一般以恒流的安全使用、寿命等具有重要影响。传统的模拟电路充电器一般以恒流或恒压方式对电池充电,难以满足电池对充电过程的特殊要求,容易造或恒压方式对电池充电,难以满足电池对充电过程的特殊要求,容易造成电池因过充、过热、记忆效应等而缩短寿命,甚至引起安全事故。本成电池因过充、过热、记忆效应等而缩短寿命,甚至引起安全事故。本例设计基于单片机的智能充电器,通过对充电过程进行精确的检测和控例设计基于单片机的智能充电器,通过对充电过程进行精确的检测和控制,最大限度地发
12、挥充电电池的作用。制,最大限度地发挥充电电池的作用。 10.2 智能充电器:系统组成 智能充电器主要由单片机电路和功率模块组成,其功率模块包括充智能充电器主要由单片机电路和功率模块组成,其功率模块包括充电和放电电路,此外还包括温度检测电路和显示电路。单片机电路是智电和放电电路,此外还包括温度检测电路和显示电路。单片机电路是智能充电器的核心,它检测充电电压、充电电流及电池温度等信息,并按能充电器的核心,它检测充电电压、充电电流及电池温度等信息,并按照设定的充电曲线,输出指令给功率放大电路,以控制电池的充电过程,照设定的充电曲线,输出指令给功率放大电路,以控制电池的充电过程,在必要时还可以显示有关
13、数据,以便用户了解电池的充电状态。功率放在必要时还可以显示有关数据,以便用户了解电池的充电状态。功率放大电路则根据单片机发出的充电指令,向电池提供相应大小的充电电流。大电路则根据单片机发出的充电指令,向电池提供相应大小的充电电流。系统组成结构见下图。系统组成结构见下图。 10.2 智能充电器:系统组成智能充电器系统结构框图智能充电器系统结构框图 10.2 智能充电器:设计要求 针对某针对某24V-10AH24V-10AH的铅酸蓄电池设计智能充电器,要求采用脉冲法对的铅酸蓄电池设计智能充电器,要求采用脉冲法对电池充电,即在一个充电周期内,有电池充电,即在一个充电周期内,有9090的时间充电,的时
14、间充电,5 5的时间停的时间停止充电,止充电,5 5的时间放电。每个充电周期为的时间放电。每个充电周期为100ms100ms。该方法充电速度。该方法充电速度快,充电效率高。整个充电过程分为快,充电效率高。整个充电过程分为3 3个阶段:当电池电压小于个阶段:当电池电压小于20V20V时为预充阶段,以时为预充阶段,以500mA500mA电流对电池充电,这有利于保护电池;当电电流对电池充电,这有利于保护电池;当电池电压处于池电压处于20V20V25V25V之间时为快充阶段,以之间时为快充阶段,以2A2A1A1A电流对电池快速电流对电池快速充电,充电电流随着电池容量的增加而逐渐减小;当电池电压大于充电
15、,充电电流随着电池容量的增加而逐渐减小;当电池电压大于25V25V为涓充阶段,此时电池已经充饱,以为涓充阶段,此时电池已经充饱,以100mA100mA电流对电池充电。所电流对电池充电。所述脉冲充电法的原理见下图。述脉冲充电法的原理见下图。脉冲电流充电法原理示意图脉冲电流充电法原理示意图 10.2 智能充电器:设计要求 当电池表面温度高于当电池表面温度高于5050时,停止充电,并进行过热指示或报警。时,停止充电,并进行过热指示或报警。 充电状态指示功能。利用发光管指示出预充、快充和涓充等阶段。充电状态指示功能。利用发光管指示出预充、快充和涓充等阶段。 用数码管显示充电电压和电流,分别精确到用数码
16、管显示充电电压和电流,分别精确到0.1V0.1V和和0.01A 0.01A 。 10.2 智能充电器:设计要求 10.2 智能充电器:设计提示 单片机选用集成有单片机选用集成有A/DA/D转换器的转换器的5151型或型或PICPIC型单片机,如型单片机,如ADuC814ADuC814、ADuC812ADuC812、PIC16C73PIC16C73等;电池电压和充电电流信号经采样后,送入单等;电池电压和充电电流信号经采样后,送入单片机的片机的A/DA/D管脚,进行管脚,进行A/DA/D转换,根据电压的大小决定充电方式。转换,根据电压的大小决定充电方式。 充放电的功率电路可选用下图所示的基于充放电
17、的功率电路可选用下图所示的基于MOSFETMOSFET管的开关型电路。管的开关型电路。 当功率管当功率管Q1Q1导通、导通、Q2Q2截止时对电池充电,截止时对电池充电,Q1Q1工作于工作于PWMPWM方式,通过调方式,通过调节占空比来控制平均充电电流的大小,节占空比来控制平均充电电流的大小,PWMPWM的频率可取为的频率可取为202050kHz50kHz。当功率管当功率管Q1Q1截止、截止、Q2Q2导通时电池放电,用放电电阻或导通时电池放电,用放电电阻或PWMPWM方式控制放方式控制放电电流的大小。电电流的大小。 10.2 智能充电器:设计提示基于基于MOSFETMOSFET的功率模块电路图的
18、功率模块电路图 用单片机产生控制用的用单片机产生控制用的PWMPWM信号,经光电耦合器隔离、驱动后,控制信号,经光电耦合器隔离、驱动后,控制MOSFETMOSFET管。管。 脉冲法充电过程中还需要对电池放电,放电电流值应通过实验确定。脉冲法充电过程中还需要对电池放电,放电电流值应通过实验确定。其基本要求是,在其基本要求是,在5 5的放电时间完成后,如果既不充电也不放电,的放电时间完成后,如果既不充电也不放电,那么电池电压应相对维持稳定,既不上升也不下降。如果完成后电那么电池电压应相对维持稳定,既不上升也不下降。如果完成后电压还上升,说明反向放电过多,反之,说明反向放电电流不足,据压还上升,说明
19、反向放电过多,反之,说明反向放电电流不足,据此可调整反向放电电流的大小。此可调整反向放电电流的大小。 单片机检测电池电压的采样时间点,选择在每个控制周期反向放电单片机检测电池电压的采样时间点,选择在每个控制周期反向放电完成的瞬间。完成的瞬间。 单片机通常还可完成对电池表面温度的检测、显示及超温报警。单片机通常还可完成对电池表面温度的检测、显示及超温报警。 10.2 智能充电器:设计提示 红外无线通信具有结构简单、成本低廉、抗干扰能力强、通信可靠红外无线通信具有结构简单、成本低廉、抗干扰能力强、通信可靠性高、适合批量生产等优点,是近距离、尤其是室内非接触式数据传送性高、适合批量生产等优点,是近距
20、离、尤其是室内非接触式数据传送的优选方式,在家用电器遥控、密码锁遥控、转速测量等方面获得广泛的优选方式,在家用电器遥控、密码锁遥控、转速测量等方面获得广泛应用。本实验利用单片机、红外发射管和红外接收管设计红外通信电路,应用。本实验利用单片机、红外发射管和红外接收管设计红外通信电路,实现基于红外光的半双工通信。实现基于红外光的半双工通信。 10.3 基于单片机的红外通信系统设计 10.3 红外通信:系统组成 红外通信系统主要由单片机、红外发射管、红外接收管、脉冲振荡红外通信系统主要由单片机、红外发射管、红外接收管、脉冲振荡器、键盘及数码管等组成。单片机对本地信号进行采集、编码并转换成器、键盘及数
21、码管等组成。单片机对本地信号进行采集、编码并转换成一定波特率的串行信号,经红外调制后向外发射,同时对接收到的红外一定波特率的串行信号,经红外调制后向外发射,同时对接收到的红外信号进行解调、解码以及显示。本例设计的红外通信电路同时具有红外信号进行解调、解码以及显示。本例设计的红外通信电路同时具有红外发送与接收功能,利用两块电路可以实现两点之间的红外半双工通信。发送与接收功能,利用两块电路可以实现两点之间的红外半双工通信。系统组成结构见下图。系统组成结构见下图。 10.3 红外通信:系统组成红外通信系统结构框图红外通信系统结构框图 10.3 红外通信:设计要求 设计基于单片机的红外通信板,利用两块
22、相同的红外通信板实现无设计基于单片机的红外通信板,利用两块相同的红外通信板实现无线通信,用键盘输入数据并控制发送,用数码管显示发送和接收的线通信,用键盘输入数据并控制发送,用数码管显示发送和接收的数据。数据。 红外载波频率选为红外载波频率选为37.9kHz37.9kHz,采用幅度键控调制方式(,采用幅度键控调制方式(ASKASK),即,),即,有无红外信号分别对应数字信号的低电平和高电平。有无红外信号分别对应数字信号的低电平和高电平。 数据位的宽度为数据位的宽度为5ms5ms。 通信距离达到通信距离达到6m6m。 自动识别接收到的是本地信号还是异地信号。自动识别接收到的是本地信号还是异地信号。
23、 10.3 红外通信:设计提示 定义传送一个字符的异步串行通信协议如下图所示。每次传送一个定义传送一个字符的异步串行通信协议如下图所示。每次传送一个字符,起始位字符,起始位0 0表示字符的开始,数据位的第表示字符的开始,数据位的第1 1位定义为地址信息,位定义为地址信息,以后的以后的7 7位为数据信息,最后位为数据信息,最后1 1位为校验信息,然后用停止位位为校验信息,然后用停止位1 1表示字表示字符的结束。符的结束。数据通信协议定义数据通信协议定义 10.3 红外通信:设计提示 当需要传送更多的信息时,可以将一定量的信息组合成一帧信息来当需要传送更多的信息时,可以将一定量的信息组合成一帧信息
24、来进行传送。每帧信息由帧开始字符、信息字符串、进行传送。每帧信息由帧开始字符、信息字符串、CRCCRC校验字符和帧校验字符和帧结束字符组成。如果在信息字符串中有帧开始字符或帧结束字符,结束字符组成。如果在信息字符串中有帧开始字符或帧结束字符,需要利用字符转义方法进行处理。此外,为了提高通信的可靠性,需要利用字符转义方法进行处理。此外,为了提高通信的可靠性,还可设置帧序列号、应答机制和重发机制等措施。还可设置帧序列号、应答机制和重发机制等措施。 单片机接收到信号后,可通过地址信息判断是否为本地发送的信号。单片机接收到信号后,可通过地址信息判断是否为本地发送的信号。如果发现是本地发送的信号,可以将
25、之与发送数据进行对比,来判如果发现是本地发送的信号,可以将之与发送数据进行对比,来判断发送是否成功。这相当于是一种自检方法,接收到的本地数据应断发送是否成功。这相当于是一种自检方法,接收到的本地数据应直接丢弃。如果发现是异地发送来的信号,则进行显示。直接丢弃。如果发现是异地发送来的信号,则进行显示。 10.3 红外通信:设计提示 红外线的频率。市场上常用的红外管发射的红外线的峰值波长是红外线的频率。市场上常用的红外管发射的红外线的峰值波长是880nm880nm。下面两个表格分别给出了一种红外发射管和接收管的典型参。下面两个表格分别给出了一种红外发射管和接收管的典型参数,使用时应参照手册中更为详
26、尽的说明。数,使用时应参照手册中更为详尽的说明。参数值响应时间响应时间800ns800ns峰值波长峰值波长880nm880nm半强度角半强度角2020正向工作电压正向工作电压1.8V1.8V正向工作电流正向工作电流100mA100mA最大反向漏电流最大反向漏电流(Vr=5V)(Vr=5V)10uA10uA参数值接收角接收角2020峰值波长峰值波长880nm880nm暗电流暗电流100nA100nA响应时间响应时间8us8us红外发射红外发射管管QED523QED523主要主要参数参数 红外接收红外接收管管QSD723QSD723主要主要参数参数 10.3 红外通信:设计提示 常用的红外载波频率
27、是常用的红外载波频率是37.9kHz37.9kHz,红外接收管可采用带有解调功能的,红外接收管可采用带有解调功能的KSM-603LMKSM-603LM,当接收到,当接收到37.9kHz37.9kHz波长为波长为880nm880nm的红外光时,其的红外光时,其OUTOUT端输端输出低电平,否则出低电平,否则OUTOUT端一直是高电平。端一直是高电平。KSM-603LMKSM-603LM从接收到红外光到从接收到红外光到输出低电平,约需要输出低电平,约需要1ms1ms的时间,故每位数据比特的宽度不能太小。的时间,故每位数据比特的宽度不能太小。 由单片机自行设计调制解调器时,可根据需要选用其它载波频率
28、。由单片机自行设计调制解调器时,可根据需要选用其它载波频率。 可以用可以用8 8脚单片机脚单片机PIC12C508PIC12C508来产生来产生37.9kHz37.9kHz的脉冲。该单片机体积小,的脉冲。该单片机体积小,且内部集成有复位和看门狗电路,仅需外接一个晶振和一个电阻,且内部集成有复位和看门狗电路,仅需外接一个晶振和一个电阻,即可产生所需的载波脉冲,比即可产生所需的载波脉冲,比555555简单、方便,且有价格优势。由于简单、方便,且有价格优势。由于采用晶体振荡器,其输出频率的精度比阻容式高出几个数量级,且采用晶体振荡器,其输出频率的精度比阻容式高出几个数量级,且波形的占空比可通过软件灵
29、活调整。波形的占空比可通过软件灵活调整。 10.4 主从式多机通信系统设计 MCS-51 MCS-51单片机的串口具有多机通信机制,利用该机制,可以实单片机的串口具有多机通信机制,利用该机制,可以实现简单的多机通信。本例即利用多个现简单的多机通信。本例即利用多个MCS-51MCS-51单片机,实现简单的主单片机,实现简单的主从式多机通信从式多机通信。 10.4 多机通信:系统组成 本主从式多机通信系统由本主从式多机通信系统由1 1台主机和台主机和3 3台从机构成。主机和从机都称台从机构成。主机和从机都称为通信站点,也简称为站点或节点。各个通信站点主要由为通信站点,也简称为站点或节点。各个通信站
30、点主要由AT89C51AT89C51单片单片机和总线驱动器机和总线驱动器MAX485MAX485组成,并可扩展拨码开关、键盘和数码管等。单组成,并可扩展拨码开关、键盘和数码管等。单片机实现信号的发送、接收及相应的分析处理,可用拨码开关设置站点片机实现信号的发送、接收及相应的分析处理,可用拨码开关设置站点的地址。在串行通信系统中,通常采用差分信号进行物理信号的传输,的地址。在串行通信系统中,通常采用差分信号进行物理信号的传输,这可以增强抗干扰能力、提高可靠性和增大传输距离。这可以增强抗干扰能力、提高可靠性和增大传输距离。MAX485MAX485芯片可以芯片可以实现电平信号和差分信号之间的转换。本
31、系统的组成结构见下图。实现电平信号和差分信号之间的转换。本系统的组成结构见下图。 10.4 多机通信:系统组成主从式多机通信系统结构框图主从式多机通信系统结构框图 10.4 多机通信:设计要求 完成主从式多机通信系统的原理设计和电路板制作,用拨码开关配完成主从式多机通信系统的原理设计和电路板制作,用拨码开关配置各站点地址,其中站点置各站点地址,其中站点0 0是主机,站点是主机,站点1 13 3为从机。为从机。 通信波特率设置为通信波特率设置为9600bps9600bps。 实现主机向从机的数据传输。通过主机键盘依次输入要通信的从机实现主机向从机的数据传输。通过主机键盘依次输入要通信的从机地址和
32、数据,启动发送;从机接收到数据后通过数码管显示。地址和数据,启动发送;从机接收到数据后通过数码管显示。 实现从机向主机的数据传输。各从机依次通过键盘输入要发送的数实现从机向主机的数据传输。各从机依次通过键盘输入要发送的数据,启动发送;主机接收后,显示从机地址和数据。据,启动发送;主机接收后,显示从机地址和数据。 实现从机到从机的数据传输。通过一台从机的键盘依次输入要通信实现从机到从机的数据传输。通过一台从机的键盘依次输入要通信的目标从机地址、主机中转数据请求以及待发送的数据,然后启动的目标从机地址、主机中转数据请求以及待发送的数据,然后启动发送;经主机中转后,目标从机应能正确接收并显示。发送;
33、经主机中转后,目标从机应能正确接收并显示。 10.4 多机通信:设计提示 MCS-51 MCS-51单片机的串口控制寄存器单片机的串口控制寄存器SCONSCON中的中的SM2SM2为多机通信控制位。串为多机通信控制位。串口以方式口以方式2 2或或3 3接收时,若接收时,若SM2SM2为为1 1,则仅当接收到的第,则仅当接收到的第9 9位数据位数据RB8RB8为为1 1时,数据才装入时,数据才装入SBUFSBUF,置位接收中断标志,置位接收中断标志RIRI;如果接收到的第;如果接收到的第9 9位数位数据据RB8RB8为为0 0,则不置位中断标志,信息丢失,则不置位中断标志,信息丢失,CPUCPU
34、不作任何处理。当不作任何处理。当SM2SM2为为0 0时,则接收到一个数据后,不管第时,则接收到一个数据后,不管第9 9位数据位数据RB8RB8是是1 1还是还是0 0,都,都将数据装入将数据装入SBUFSBUF置位中断标志置位中断标志RIRI,请求,请求CPUCPU处理。处理。 在主从式通信中,从机都初始化为在主从式通信中,从机都初始化为9 9位异步通信方式位异步通信方式( (方式方式2 2或或3)3),置,置位位SM2SM2,允许接收串行中断。主机要和某一从机通信时,先发出联络,允许接收串行中断。主机要和某一从机通信时,先发出联络命令。联络命令的命令。联络命令的TB8TB8为为1 1,各个
35、从机收到的,各个从机收到的RB8RB8为为1 1,置位,置位RIRI,请求,请求CPUCPU处理。只有目标从机才清零处理。只有目标从机才清零SM2SM2,并给主机作出应答;其它从机,并给主机作出应答;其它从机保持保持SM2SM2为为1 1,不动作。,不动作。 10.4 多机通信:设计提示 主机收到应答之后,就可以和从机通信,进行双向数据传输。主机主机收到应答之后,就可以和从机通信,进行双向数据传输。主机发送的信息的第发送的信息的第9 9位位TB8TB8为为0 0,只有联络好的从机的,只有联络好的从机的SM2SM2为为0 0,它才会收,它才会收到主机的命令或数据,并作相应处理;其它从机由于到主机
36、的命令或数据,并作相应处理;其它从机由于SM2SM2保持为保持为1 1,对主机的通信命令和数据不作任何处理。这样便实现了主机和从机对主机的通信命令和数据不作任何处理。这样便实现了主机和从机之间的一对一的通信。之间的一对一的通信。 当一次通信结束以后,从机的当一次通信结束以后,从机的SM2SM2恢复为恢复为1 1,主机可以发出新的联络,主机可以发出新的联络命令,以便和另一台从机进行通信。命令,以便和另一台从机进行通信。 10.4 多机通信:设计提示 需要指出,以上方式是基于需要指出,以上方式是基于MCS-51MCS-51单片机的多机通信机制的主从式单片机的多机通信机制的主从式多机通信。通过设定帧
37、协议,进行以帧为单位的数据传输,是更加多机通信。通过设定帧协议,进行以帧为单位的数据传输,是更加灵活的多机通信方法。比如,在每帧中设置一个字节作为目标站点灵活的多机通信方法。比如,在每帧中设置一个字节作为目标站点的地址,当所有的从机都收到一帧信息后,只有目标站点地址与自的地址,当所有的从机都收到一帧信息后,只有目标站点地址与自身地址相同的从机才将这一帧数据作为有效数据,否则不作处理,身地址相同的从机才将这一帧数据作为有效数据,否则不作处理,这样也能实现多机通信。这相当于利用软件对通信过程进行管理。这样也能实现多机通信。这相当于利用软件对通信过程进行管理。 利用软件来管理复杂的通信过程具有硬件接
38、口简单的优点,但其缺利用软件来管理复杂的通信过程具有硬件接口简单的优点,但其缺点是可靠性差、占用点是可靠性差、占用CPUCPU时间长,故可以采用专门的硬件电路来完成时间长,故可以采用专门的硬件电路来完成这些管理工作,而把这些管理工作,而把CPUCPU解放出来。各种总线控制器正是根据一定的解放出来。各种总线控制器正是根据一定的协议来实施这些工作的,比如协议来实施这些工作的,比如CANCAN总线控制器、以太网控制器等。总线控制器、以太网控制器等。 10.5 CAN总线站点设计与通信实验 CAN CAN 总线是一种用于工业现场的串行通信网络,它由挂接在总线上总线是一种用于工业现场的串行通信网络,它由
39、挂接在总线上的多个通信站点组成,各站点通常由单片机系统和的多个通信站点组成,各站点通常由单片机系统和CANCAN控制器组成。单控制器组成。单片机系统发送和接收数据都只和片机系统发送和接收数据都只和CANCAN控制器打交道。控制器打交道。CANCAN控制器是一个通控制器是一个通信管理芯片,它一方面和单片机进行双向通信,接收从单片机发送的任信管理芯片,它一方面和单片机进行双向通信,接收从单片机发送的任务,向单片机传送从总线上接收到的有关数据;另一方面又与总线进行务,向单片机传送从总线上接收到的有关数据;另一方面又与总线进行双向通信,检测总线上的数据,接收其它站点向本站点发送的数据,在双向通信,检测
40、总线上的数据,接收其它站点向本站点发送的数据,在总线允许的情况下,向总线发送本站点要求发送的数据本例利用总线允许的情况下,向总线发送本站点要求发送的数据本例利用CANCAN控控制器制器SJA1000SJA1000来设计来设计CANCAN站点,进行通信实验。站点,进行通信实验。 10.5 CAN总线站点设计与通信实验CANCAN通信网络组成通信网络组成 10.5 CAN站点:系统组成 本例所设计的本例所设计的CANCAN站点主要由站点主要由AT89C52AT89C52单片机和单片机和CANCAN控制器控制器SJA1000SJA1000组组成,采用成,采用PCA82C250PCA82C250作为总
41、线驱动器。作为总线驱动器。PCA82C250PCA82C250的作用与前述的作用与前述MAX485MAX485的的作用类似,用于实现电平信号和差分信号之间的转换。单片机上还连接作用类似,用于实现电平信号和差分信号之间的转换。单片机上还连接有数码管和拨码开关,数码管用于显示接收和发送的数据,拨码开关用有数码管和拨码开关,数码管用于显示接收和发送的数据,拨码开关用于设置本站点的地址。系统组成结构见下图。于设置本站点的地址。系统组成结构见下图。 10.5 CAN站点:系统组成基于基于MCS-51MCS-51单片机的单片机的CANCAN节点实现框图节点实现框图 10.5 CAN站点:设计要求 完成完成
42、CANCAN站点的电路原理图设计和电路板制作,每个站点用站点的电路原理图设计和电路板制作,每个站点用4 4位数码位数码管显示。管显示。 编写程序,实现编写程序,实现3 3个站点间的循环通信,每个数据包发送个站点间的循环通信,每个数据包发送2 2个字节,个字节,各个站点都显示本站点发送的数据。三个站点的操作如下:各个站点都显示本站点发送的数据。三个站点的操作如下: 站点站点A A:初始化完毕或发送完毕后开始计时,若在初始化完毕或发送完毕后开始计时,若在2 2秒内收到数据,秒内收到数据, 则则1 1秒后将收到的数据加秒后将收到的数据加1 1发送给站点发送给站点B B;否则向站点;否则向站点B B发
43、送发送 0 x00000 x0000。 站点站点B B:初始化完毕后等待接收中断,一旦接收到数据,将数据加初始化完毕后等待接收中断,一旦接收到数据,将数据加 1 1,并转发给站点,并转发给站点C C。 站点站点C C:初始化完毕后等待接收中断,一旦接收到数据,将数据加初始化完毕后等待接收中断,一旦接收到数据,将数据加 1 1,并转发给站点,并转发给站点A A。 10.5 CAN站点:设计要求 如上所述,所设计的如上所述,所设计的CANCAN总线站点在正常情况下,每个站点每隔总线站点在正常情况下,每个站点每隔1 1秒,秒,都会进行一次接收数据、数据加都会进行一次接收数据、数据加1 1、发送数据的
44、操作,每个站点发送的、发送数据的操作,每个站点发送的数据都不相同,发送的数据将在本站点显示。如果偶尔出错,将由站点数据都不相同,发送的数据将在本站点显示。如果偶尔出错,将由站点A A重新启动这种循环。只有在故障情况下,才不能实现通信。重新启动这种循环。只有在故障情况下,才不能实现通信。 10.5 CAN站点:设计提示 SJA1000 SJA1000是单片机系统的典型外设,需通过并行扩展方式,将其连接是单片机系统的典型外设,需通过并行扩展方式,将其连接到到MCS-51MCS-51单片机的并行总线上。其相应的软件包括初始化程序、发单片机的并行总线上。其相应的软件包括初始化程序、发送接收程序等,通常
45、采用中断方式来实现发送和接收。送接收程序等,通常采用中断方式来实现发送和接收。 学习学习SJA1000SJA1000的数据手册,了解的数据手册,了解SJA1000SJA1000的工作原理、硬件电路原理的工作原理、硬件电路原理和初始化编程的方法。和初始化编程的方法。 学习学习PCA82C250PCA82C250的数据手册,了解其应用电路的连接方法。的数据手册,了解其应用电路的连接方法。 SJA1000 SJA1000占用占用MCS-51MCS-51单片机的外部数据存储器空间,见系统组成框图。单片机的外部数据存储器空间,见系统组成框图。SJA1000SJA1000采用地址采用地址- -数据复用总线
46、,连接时,将数据复用总线,连接时,将SJA1000SJA1000的的8 8位数据口位数据口和和ALEALE线与线与MCS-51MCS-51单片机的单片机的P0P0端口和端口和ALEALE线直接连接即可。线直接连接即可。 10.5 CAN站点:设计提示 利用拨码开关设置本站点的利用拨码开关设置本站点的IDID号。号。 在联调之前,应首先对单个站点的功能进行调试。可利用在联调之前,应首先对单个站点的功能进行调试。可利用SJA1000SJA1000的的自检功能对单个站点进行测试。自检功能对单个站点进行测试。 不完全了解不完全了解CANCAN通信协议,仅学习通信协议,仅学习SJA1000SJA1000
47、的数据手册,是可以完成的数据手册,是可以完成该设计的。但是,深入了解该设计的。但是,深入了解CANCAN通信原理和学习通信原理和学习CAN2.0CAN2.0通信协议,对通信协议,对于设计出一个好的通信网络是至关重要的。于设计出一个好的通信网络是至关重要的。 10.6 利用单片机和GSM模块实现短消息通信 短消息服务(短消息服务(Short Message ServiceShort Message Service,简称,简称SMSSMS),也称短信服务,),也称短信服务,是移动通信系统(是移动通信系统(Global System for Mobile CommunicationGlobal Sy
48、stem for Mobile Communication,简称,简称GSMGSM)提供的)提供的GSMGSM终端(比如手机)之间的一种应用服务。基于该服务,终端(比如手机)之间的一种应用服务。基于该服务,通过通过GSMGSM网络,网络,GSMGSM终端之间可以实现文本信息的收发,如下图所示。如终端之间可以实现文本信息的收发,如下图所示。如果我们能设计果我们能设计GSMGSM终端,并利用终端,并利用SMSSMS进行远程数据的双向传送,就能实现进行远程数据的双向传送,就能实现无线远程监测和控制。本设计例就是利用单片机和无线远程监测和控制。本设计例就是利用单片机和GSMGSM模块设计一套模块设计一
49、套GSMGSM终端,通过它以短消息的方式向手机发送监测信息。终端,通过它以短消息的方式向手机发送监测信息。 10.6 利用单片机和GSM模块实现短消息通信GSMGSM网络连接结构网络连接结构 10.6 短消息通信:系统组成 本例所设计的本例所设计的GSMGSM终端主要包括单片机和终端主要包括单片机和GSMGSM模块,此外设置有键盘模块,此外设置有键盘和数码管用于输入和显示。单片机通过和数码管用于输入和显示。单片机通过UARTUART口与口与GSMGSM模块通信,并通过模块通信,并通过发送一定的命令,实现对发送一定的命令,实现对GSMGSM模块的操作,如短消息的接收和发送等。模块的操作,如短消息
50、的接收和发送等。单片机用于控制单片机用于控制GSMGSM模块的控制命令称为模块的控制命令称为ATAT命令集。命令集。GSMGSM模块在工作时需模块在工作时需要插入要插入SIMSIM卡,即手机卡,并通过外接天线提高通信质量。实验时,用卡,即手机卡,并通过外接天线提高通信质量。实验时,用另外的手机接收所设计的另外的手机接收所设计的GSMGSM终端发送的短消息,或通过手机向所设计终端发送的短消息,或通过手机向所设计的的GSMGSM终端发送短消息。系统的组成结构见下图。终端发送短消息。系统的组成结构见下图。 10.6 短消息通信:系统组成GSMGSM终端结构终端结构 10.6 短消息通信:设计要求 设