竭诚为您提供优质文档/双击可除
can 串口通信协议
篇一:can总线与pc机串口通信适配器设计与实现
引言
can总线(controllerareanetwork,控制器局域网)具有 高性能、高可靠性、高性价比、连接方便、实时性好监控。图1为系统结构框图。pe机通过Rs-232与can 控制器sjalOOO通信,实现信息在can总线上的发送与接收。 底层各智能节点根据应用的不同具有不同功能,但都具有与 can 总线通信能力可以上传数据和接收数据。
can 总线接口硬件设计
图 2 为 can 总线通信接口适配器硬件设计简图。
pca82c250提供对总线的差动发送和对can控制器的差 动接收功能,也增大了通信距离,提高了系统的瞬间抗干扰 能力,保护总线,降低射频干扰(RFi),实现了热防护等功 能。
系统软件设计
软件设计分pc机Visualbasic编程和at89c51单片机c 语言编程 2 部分。
pc 机部分
,这样界面非常直观,人机交互效果好。
Vb 提供了具有通讯功能的 控件,该控件可设置 串行通信的数据发送和接收,对串口状态及串口通信的信息 格式和协议进行设置omscomm控件提供2种处理通讯的方式: (1)事件驱动通讯,即发送或接收数据过程中触发 oncomm 事 件,通过编程访问commevent属性了解通信事件的类型,分 别进行各自的处理;(2)查询方式,通过检查 commevent 属 性的值来查询事件和错误。采取查询方式。控件 mscomm 是 将 Rs-232 的初级操作予以封装,用户以高级的 basic 语法 即可利用 Rs-232 与外界通信并不需要了解其他有关的初级 操作,因此使用方便。
mscomm 控件初始化:
=2 设置串口 2 =“9600, n, 8, 1”设定工作方式 =10 根据 1 次传 1 个 can 帧,设 置输入缓冲区大小
=1 二进制形式接收
=0 一次读出输入缓冲区中的所有数 据
=10 输出缓冲区大小的设置
=0 清空输出缓冲区
=true 打开串口
pc机与单片机msc51之间的通信约定如下:一般情况下 pc 与多个 msc51 单片机系统进行主从式通信,其方案是 msc51 采用串口工作方式 3,即 11 位异步接收/发送方式, 有效数据为 9 位,其中第 9 位为地址/数据信息的标志位, 以此区分各从机。但现在 pc 机采用 Vb 编程,其 mscomm 控 件为标准的
10 位串口通信,包括 8 位标准数据和数据的起始位和停 止位。将单片机串口设为工作方式 1,即改为10位异步接收 /发送方式,通讯流程如下:
通讯时首先发通信开始标志,接着发送各下位机单片机 的地址信号和芯片的片选信号,然后发送单片机的工作命令 字。再往下即进行数据处理,转入相应的处理功能模块,最 后对数据进行效验。这个通讯流程非常简便,实现了 pc 机 与单片机之间的主从式通讯。
以下为Vb的发送接收程序:
privatesubcmdsenddclick()使用按钮控件
= 将传送区内的字符串以 output 属性送出
endsub
privatesubFormaload()窗体的加载事件
=true 将通讯断口开启,通讯参数也 可以在开启前先设定
threshold二Val (txtt hreshold .text)设定弓丨 发接收事件的接收阈值,使程序一执行便开启通讯端口,将 接收的阈值设定为阈值,设定文本框内的值。
endsub
()通讯控件的 oncomm 事件。
弓发接收事件后,将字符收进来并放在接收的文本框中
根据下面每一个 case 语 句处理每个事件和错误事件 casecomevcdcd 线的状态发生变 化
casecommevReceive 收到 Rthreshold#of
=+trim()
ea=1; //开中断
es=1; //允许串口中断
tR1=1; //启动定时器 t1
specha
can串口通信协议 来自淘豆网m.daumloan.com转载请标明出处.