PC机并口与现场总线CAN通讯的实现》及本站其它信息均来自网络!
行业新闻技术文章解决方案电路图产品库厂商库供应信息求购信息外刊文摘
 技术文章 -> PCB电源单片机DSP设备与仪器EDA放大/转换存储器嵌入式接口与连接通讯与网络模拟技术其它技术文章
 解决方案 -> 汽车电子光电与显示测试测量计算机与外设仪器仪表通讯与网络视像设备消费电子工业控制其它解决方案
 产 品 库 -> 存储器嵌入式单片机电源通讯网络接口电路DSP视频音频EDA/PLD显示光电电测仪表传感与控制其它产品
 首页 -> 技术文章 -> 通信与网络 -> 正文

PC机并口与现场总线CAN通讯的实现

本文采用pc机并行端口epp(enhanced parallel port)协议在windows98系统下通过对并口操作完成对can控制器sja1000的控制,从而与同一网络的其他can节点的通讯。

1转换端口电路框图

由于sja1000的访问时间在40ns以内,所以pc在访问sja1000时完全可以不用插入等待周期。/wait可以由/addrstrobe和/datastrobe信号经过一个与非门后产生(图1)。由于sja1000的a l e时下降沿锁存地址信号,所以将/addrstrobe反相后与ale相连。在epp的数据读/写周期时,sja1000的/rd和/wr控制信号有效,而在地址读/写周期时无效。sja1000的/reset脚与并行端口的/reset脚相连,由pc机向sja1000提供复位信号,如果并行端口的/reset脚不用做s j a1000的复位,则可以用作外设16位地址高低字节的选通信号。sja1000的片选/cs脚接地,始终处于选通状态。


2epp端口寄存器

(表2)

上表中irqen:中断使能位(1有效);astrb:地址选通位(0有效);init:初始化(1有效);dstrb:数据选通位(0有效);write:读/写状态位(0:写,1:读)。读取接口状态和控制接口都只须对相应的端口寄存器进行操作。以下为windows环境下采用vc++嵌入汇编的收和发的子程序(基地址为378h)。

3对can节点sja1000的操作

  在进行通讯之前应先对sja1000进行初始化,其初始化步骤依次为:a)检测硬件连接是否正确,b)进入复位状态,c)设置时钟分频寄存器,d)设置输出控制寄存器,e)设置通讯波特率,f)设置代码验收寄存器,g)设置代码屏蔽寄存器,h)设置工作模式,i)设置中断使能寄存器,j)退出复位状态完成初始化。

  通讯过程中can数据格式为:一帧can报文分为信息头和信息内容两部分。前5个字节为信息头部分(如下表地址16~20),其前29位(id0~id28)为标示符(4个字节),包含本信息包的目的地址。第5个字节是帧信息,ff为帧格式(0为标准帧,1为扩展帧格式),rtr为远程帧发送请求(0表示发送数据帧,1表示发送远程帧),x表示无关位,最后4位dlc是数据长度,即所发数据的实际字节数。其余8个字节是数据内容部分,即为实际所发的数据。表3说明了can报文数据格式(扩展帧)。

4通讯实现过程

  pc机采用visual c++建立对话框发送对象,采用主动发送方式,此时can网络中一定要有接收方存在,否则sja1000将由于无应答而一直处于发送状态。接收数据则采用查寻方法(vc++采用工作线程方法很容易实现)。以下为创建线程及线程执行函数(在执行函数体中以接收数据并输出为例,不考虑can总线远程帧请求,sja1000的基地址为0)。

5结束语

can总线以高抗干扰性,高速率,实时性强等优点,被广大顾客所青睐。本文介 绍了基于并口与can总线的转换及通讯办法,这些都是笔者在学习和实践中得来,相信能对 从事相关工作的人员有一定的启发。


  ()
Google
 >> 最近更新
 • USB接口芯片SL811HS在51单片机系统中的应用
 • 单片机系统与标准PC键盘的接口模块设计
 • 在嵌入式系统中实现对U盘的操作设计
 • 模拟信号仍在驱动数字显示器
 • 串行接口LED数码管及键盘管理器件ZLG7289A的原理
 • USB接口技术在外置式采样系统中的应用
 • AIT2139的视频转换器设计方案
 • 系统不认硬盘的常规处理方法
 • 硬盘维修的误区
 • 移动硬盘制作成启动盘
 • 误拔移动硬盘导致系统无法启动故障分析解决
 • 双硬盘盘符交错的处理
 • 硬盘跳线 图解
 • 移动硬盘故障的几种原因分析
 • 硬盘故障处理技巧4则(4)四、硬盘常见“坏道”的
 • 硬盘故障处理技巧4则(3)
 • 硬盘故障处理技巧4则
 • 硬盘故障处理技巧4则
 • sata硬盘安装系统
 • 硬盘引导型故障分析及排除
Copyright © 2005-2008 555DZ.com 联系站长:55dz@163.com