首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
X86
» 基于单片机的智能电平转换器设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于单片机的智能电平转换器设计
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-10-22 09:53
|
只看该作者
基于单片机的智能电平转换器设计
转换器
,
单片机
,
智能
1 引言
CAN,全称为“Controller Area Network”,即控制器局域网,是一种国际标准的,高性价的
现场总线
,在自动控制领域具有重要作用。CAN是一种多主方式的串行通讯
总线
,具有较高的实时性能,因此,广泛应用于
汽车
工业、航空工业、
工业控制
、安全防护等领域。
由于PC机无CAN接口,因此,PC机与智能节点构成
CAN总线
系统可采用
RS232
/CAN、并口/CAN、USB/CAN、ISA卡/CAN以及PCI卡/CAN方式接入。而采用RS232/CAN接入时,需采用CAN/RS
232接口
标准转换。针对这一问题,提出了CAN/RS232智能
电平转换器
设计方案,以SJAl000作为独立CAN控制器,完成CAN通信协议。并在SJAl000与驱动器之间连接高速
光耦
,从而实现总线各点间的电气隔离。
2 硬件
电路设计
CAN/RS232智能电平转换器硬件电路主要由微处理器AT89C52、独立CAN通讯控制器SJAl000、CAN总线驱动器82C250、高速
光电耦合器
6N136、TTL电平与RS232电平转换器ICL232、
LED
数码管显示电路以及为SJAl000提供初始地址的拨码电路组成,其结构
框图
如图1所示。
3 CAN控制器SJAlOOO
SJAl000是一款独立CAN控制器,应用于移动目标和工业局域区域网控制领域。该器件是Philips公司CAN控制器PCA82C200的替代产品。SJAl000具有两种工作模式,本设计采用PeliCAN工作模式。
3.1 SJAl000与AT89C52的
接口设计
SJAl000与AT89C52的接口电路如图2所示。AT89C52负责sJAl000的初始化,控制SJAl000来实现数据的接收和发送等通讯任务。SJAl000的ADO~AD7连接至AT89C52的P0端口,CS连接至AT89C52的P3.4(AT89C52的定时器T0不起作用)。当P3.4为0时,AT89C52选中SJAl000,并通过访问外部RAM低地址区实现P0端口的读/写操作,从而对SJAl000相应寄存器执行读/写操作。SJAl000的RD、WR、ALE引脚分别与AT89C52的对应引脚相连,SJAl000的INT引脚接AT89C52的INTO引脚。AT89C52还可通过中断方式访问SJAl000。为了增强系统的稳定性,采用双
晶体振荡器
,AT89C52采用11.059 2 MHz的晶体振荡器,SJAl000选用16 MHz的晶体振荡器。复位电路可选用DSl232,其输出引脚ARES与SRES分别与AT89C5l的RESET引脚和SJAl000的RESET引脚相连。
3.2 SJAl000与驱动器的连接
SJAl000的TX0、RX0引脚不是直接与82C250的TXD、RXD引脚相连,而是通过高速光耦6N136与82C250相连,这样可增强CAN总线节点的抗干扰能力,从而实现总线各节点间电气隔离。高速光耦6N136用于保护SJAl000型CAN总线控制器,该光耦两侧采用5 V的DC―DC
电源
.可使器件的VCC与VCCl完全隔离,提高系统的抗干扰能力以及节点的稳定性和安全性。图3所示为SJAl000与CAN驱动器82C250的连接电路。
4 软件程序设计
系统软件程序设计包括:主程序、CAN节点初始化子程序、RS232报文发送子程序、RS232报文接收子程序、CAN报文接收子程序以及CAN报文发送子程序。其主程序流程图如图4所示。
4.1 CAN节点初始化
独立CAN控制器SJAl000必须在上电或硬件复位后设置CAN通讯。上电后SJAl000的17引脚得到一个复位电平(低电平),使其进入复位模式。初始化包括设置工作方式、接收滤波方式、接收屏蔽寄存器和接收代码寄存器、波特率参数和中断允许寄存器。初始化设置完成后,SJAl000则进入工作状态,开始执行通讯任务。
SJAl000寄存器初始化,首先要将其模式寄存器(MOD)复位模式位置为l,再通过时钟分频寄存器(CDR)选择PeliCAN工作模式,同时关闭时钟输出(CLOCKOUT);通过中断允许寄存器(IER)开启发送中断、溢出中断和错误警告中断;向接收屏蔽寄存器(AMR)和接收代码(ACR)寄存器赋初值;通过总线定时寄存器0 (BTR0)和总线定时寄存器1(BTRl)设置波特率;为输出控制寄存器(OCR)赋初值;通过接收缓冲器起始地址寄存器(RBSA)来设置接收缓冲器FIF0的起始地址;清除发送错误计数寄存器(TXERR);清除错误代码捕捉寄存器(ECC),最后再次选择方式寄存器(MOD),设置单滤波,并返回工作状态。
4.2 RS232报文发送
AT89C52内含一组全双工串行传输界面,可同时接收或传输外部数据,其信号为TTL电平。由于与标准的RS232界面不兼容,须加电平准转换IC才可与RS232相连。AT89C52串行发送及接收数据均是通过特殊功能暂存器SBUF完成,在设定通讯协议模式后,通过指令“MOV SUBF,A”就可将存储在SBUF暂存器内的数据由引脚TXD串行传输。
4.3 RS232报文接收
AT89C52串行传输控制暂存器是由特殊控制暂存器SCON控制,SCON设定串行传输工作模式,发送接收时其第9位及发送接收时中断指示工作。通过指令“MOV A,SBUF”则将外界串行信号经由RXD引脚读入,并转换成并列数据存入暂存器A。
4.4 CAN报文发送
根据CAN协议,报文传输是由独立CAN控制器SJAl000完成。主控制器必须将要发送的数据按特定格式组合成一帧报文传输到发送缓冲器,将命令寄存器中的“发送请求”置1,然后启动SJAl000发送即可。
4.5 CAN报文接收
CAN报文接收子程序负责节点的报文接收和其他情况的处理。接收子程序在结构上要比发送子程序复杂一些,因为在接收报文时,要对同处理诸如总线关闭、错误报警、接收溢出等情况。SJAl000报文接收和发送有两种方式:中断方式和查询方式。查询方式应禁止接收中断使能,而中断方式一般用于实时性要求较高的情况。
在中断方式下,如果SJAl000已接收一个报文,而且报文通过验收滤波器并存入接收FIFO,则产生一个接收中断。因此主控制器立刻工作,将收到的报文发送到报文存储器中,再通过置位命令寄存器的相应标志“RRB”发送一个释放接收缓冲器命令。接收FIF0里的更多报文将产生一个新的接收中断,因此不能将所有接收FIF0中的有效信息在一个中断周期内读出。接收缓冲器释放后,SJAl000会检查状态寄存器中接收缓冲器状态(RBS)是否有更多报文,所有有效信息都将循环读出。
5 结语
本系统设计采用SJAl000作为CAN独立控制器,以CAN/RS232智能电平转换器为实例,论述了CAN总线与
单片机
之间的接口连接,对CAN总线的实际应用具有一定的参考价值。
关键字:
CAN总线
RS232
电平转换器
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议