微机应用课程设计报告`题目:基于单片机的16*16点阵系统设计专业:…班级:姓名:学号:地点:时间:指导老师:~摘要现场总线是自动化领域的计算机网络,是当今自动化领域技术发展的热点之一。
它以总线为纽带,将现场设备连接起来成为一个能够相互交换信息的控制网络,是一种双向串行多节点数字通信的系统。
CAN总线也是现场总线的一种,它最初被应用于汽车的控制系统中,由于其卓越的性能,CAN总线的应用范围已不再局限于汽车工业中,而被广泛的用到自动控制、楼宇自动化、医疗设备等各个领域。
本文主要介绍一种基于CAN总线的控制系统,通过对这一系统的制作流程来说明CAN总线的简单应用,文章主要是对本控制系统的三个硬件模块进行介绍及模块中相关芯片的应用,同时本文也对软件的编写进行了说明。
关键字:现场总线; CAN总线;单片机;控制系统目录1 绪论 (1)CAN总线的简单介绍 (1)CAN总线的优势 (1)网络各节点之间的数据通信实时性强 (2)缩短了开发周期 (2)已形成国际标准的现场总线 (2)最有前途的现场总线之一 (2)2 硬件电路设计 (3)单片机模块 (3)STC89C52主要特性如下: (4)STC89C52RC单片机的工作模式 (5)CAN总线控制器模块 (6)SJA1000简介 (6)PCA82C250简介 (9)通信模块和外围接口 (11)通信模块 (11)外围接口 (12)3 CAN总线控制系统软件设计 (13)初始化程序 (13)数据的接收和发送功能 (15)发送数据 (15)接收数据 (17)4 总结 (19)参考文献 (20)附录一 (21)1 绪论CAN总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通讯网络,CAN总线的应用范围遍及从高速网络到低本钱的多线路网络,在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbps,同时,它可以廉价地应用于交通运载工具电气系统中,例如,灯光聚束电气窗口等等以代替所需要的硬件连接。
CAN总线采用双绞线串行通讯方式,检错能力强,可在高噪声干扰环境中工作,CAN总线具有优先和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-BUS上,形成多主机局部网络,其可靠性和实时性远高于普通的通讯技术。
本文所论述的CAN总线控制系统是一个类似单片机最小开发系统一样的开发板,其主要分为三个部分:单片机模块,CAN总线控制模块,外围接口和通信模块。
单片机模块主要是用单片机来控制整个系统,CAN总线控制模块主要是利用CAN总线控制器来实现和外围CAN总线的通信和交换信息,而外围接口和通信模块主要功能是为单片机下载程序和连接外围功能模块,主要是连接一些其他功能模块来实现相关的功能,接口分为输入接口和输出接口,这样可使一个系统构成闭环控制系统,从而可有效的实现所需要的控制功能,完成以后可应用于各种领域,实现各种控制功能,例如说路灯控制,汽车上的一些通信,电机控制等。
CAN总线的简单介绍CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。
是国际上应用最广泛的现场总线之一。
在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
CAN(controller area network)最初是由德国Bosch公司在80年代初期,为了解决汽车中众多的控制与测量设备之间的数据交换而开发的一种串行数据通信总线,属于现场总线的范畴,1993年成为国际标注(ISO11898:道路车辆的高速控制器局域岗数字交换系统标准)。
CAN总线是一种有效支持分布式控制系统或实时控制的串行通信网络,是一个多主总线,总线上的各节点都有权随时向其他节点发送信息,总线冲突时通过总线仲裁方式决定占用总线的节点,实现在电磁干扰环境下,远距离实时数据的可靠传输。
CAN总线的优势CAN是一种有效支持分布式控制或实时控制的串行通信网络。
和目前许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:1.2.1 网络各节点之间的数据通信实时性强首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性,而利用RS-485只能构成主从结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。
1.2.2 缩短了开发周期CAN总线通过CAN接收器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。
这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象,而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现显现在网络中,因个别节点出现问题,使得总线出于“锁死”状态,而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些都是仅有电气协议的RS-485所无法比拟的。
1.2.3 已形成国际标准的现场总线另外,于其他现场总线相比较,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线,这些也是目前CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。
1.2.4 最有前途的现场总线之一CAN即控制器局域网络,属于工业现场总线的范畴,于一般的通信总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性。
由于其良好的性能及独特设计,CAN总线越来越受到人们的重视。
它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ、PORSCHE、ROLLS-ROYCE等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信,同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、过程控制、机械工业、农用机械、数控机床、医疗器械及传感器等领域发展,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一,其典型的应用协议有:SAEJ1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。
2 硬件电路设计此控制系统主要有三个主要的模块组成,第一步分为单片机模块,第二部分为CAN总线控制器模块,第三部分为通信和外围接口,其主要分为输出和输入接口,使系统构成一个闭环系统,从而实现所需要的控制功能。
系统功能结构图如图1示输入设备输出设备89C52单片机SJA1000通信控制器82C250 CAN总线图1 系统结构示意图单片机模块图2为系统单片机模块的电路图图2 单片机模块电路图本系统单片机选择的是STC89C52,是双列直插式40引脚,其芯片引脚图如图2-4。
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
图3 STC89C52的芯片引脚图2.1.1 STC89C52主要特性如下:1. 增强型 8051 单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
2. 工作电压:~(5V单片机)/~(3V单片机)。
3. 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
4. 用户应用程序空间为8K字节。
5. 片上集成512字节RAM。
6. 通用I/O口(32个)复位后为,P1/P2/P3/P4是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/,TxD/)直接下载用户程序,数秒即可完成一片。
8.具有EEPROM功能。
9.具有看门狗功能。
10.共3个16位定时器/计数器,即定时器T0、T1、T2。
11.外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。
12.通用异步串行口(UART),还可用定时器软件实现多个UART。
13.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)。
14. PDIP封装。
2.1.2 STC89C52RC单片机的工作模式掉电模式:典型功耗<μA,可由外部中断唤醒,中断返回后,继续执行原程序。
空闲模式:典型功耗2mA典型功耗。
正常工作模式:典型功耗4mA~7mA典型功耗。
掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。
STC89C52RC引脚功能说明:VCC(40引脚):电源电压;VSS(20引脚):接地。
P0端口(~,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。
P1端口(~,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P2端口(~,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O 端口。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
P3 端口(~,10~17 引脚):P3 是一个带内部上拉电阻的 8 位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。