1. CAN总线通信
是的,楼上说的没错,其实国内很多厂家的技术都是一般般的,不晓得特别好,我也买过不少CAN通讯的模块,感觉周立功的相对来说,稍微给力一点点吧。你可以去看一下的。
2. 谁能简单讲讲CAN总线的通讯原理
CAN总线通信硬件原理图(采用TJA1050T
CAN总线驱动器)
F040中内置CAN总线协议控制器,只要外接总线驱动芯片和适当的抗干扰电路就可以很方便地建立一个CAN总线智能测控节点。本设计中采用PHILIP公司的TJA1050T
CAN总线驱动器。
CAN总线通信硬件原理图如图3所示。
图中F040
的CAN信号接收引脚RX和发送引脚TX并不直接连接到TJA1050T的RXD和TXD端,而是经由高速光耦6N137进行连接,这样做的目的是为了实现CAN总线各节点的电气隔离。为了实现真正意义上完全的电气隔离,光耦部分的VA和VB必须通过DC-DC模块或者是带有多个隔离输出的开关电源模块进行隔离。为防止过流冲击,TJA1050T的CANH和CANL引脚各通过一个5Ω的电阻连接到总线上。并在CANH和CANL脚与地之间并联2个30P的电容,
用于滤除总线上高频干扰。而防雷击管D1和D2可以起到发生瞬变干扰时的保护作用。
TJA1050T的8脚连接到F040的一个端口用于模式选择,TJA1050T有两种工作模式用于选择,高速模式和静音模式。TJA1050T正常工作在高速模式,而在静音模式下,TJA1050T
3. 以CAN总线、单片机为核心,工业现场总线的数据采集(毕业论文设计)
是主函数出了问题,你的键盘扫描程序是有返回值的函数,返回的值是指函数的运算结果,不是对于keycounts这个变量的,所以你需要把主函数改成
while (1)
{
uchar m;
m=keyscan();
=m/100;
shi=m/10%10;
ge=m%10;
display(,shi,ge);
}
再有就是楼上说的问题了,松手检测while(temp!=0xff);处
应该加显示函数,不加也能运行,但是按下按键时,没有显示,造成显示一闪一闪的,
再有,函数返回 return keycounts;之后
,就不再向下运行了,所以,最后一句 P3=0xff;
是白写的,根本不会执行。
另外呢,写程序要慢慢练,一句一句的弄懂,看别人写一遍之后,自己再写一遍,不要怕错,错了才更懂,我刚学的时候写一个时钟程序,写了一周,除了上课时间,一天只吃一顿饭的写(当时老师逼得紧),后来写了560行,结果老师说太长了,就没看,然后我看别人写的,再看自己写的,的确很烂,但还是让我受益匪浅的,后来慢慢的练一下,就把程序缩短了。
你练久了就会发现,上面的显示函数,可以用一个for循环和一个数组就完成的
,不用一个一个的写,关键是不要怕错,多练就好。
我也才学几个月,上面是我的一点建议,希望对你有所帮助
请参考
4. CAN总线的研究现状,能具体点的
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。
在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
CAN总线特点:
(1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序,高优先级节点信息在134μs通信;
(2) 多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞;
(3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M);
(4) CAN总线传输介质可以是双绞线,同轴电缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。
5. CAN总线通讯应用编程实践
1、先看51单片机的书(包括了51结构,编程,画板等内容)
——51的书是比较多的,教材都可以
2、了解CAN的协议(CAN的协议,CAN节点的构成,CAN应用层协议的建立)
——CAN的书不多,网上资料有的
3、最重要的是有块51的CAN开发板,对你来说是最直接的帮助,能弄懂并COPY一个的话你的毕设应该可以交差了。
6. can总线通讯协议
随着集成电路和嵌入式电脑在汽车上的广泛应用,现代汽车上的电子控制器的数量越来越多,常见的有发动机的电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电动门窗装置、主动悬架等。电控系统的增加虽然提高了轿车的动力性、经济性和舒适性,但随之增加的复杂电路也降低了汽车的可靠性,增加了维修的难度。从布线角度分析,传统的电子气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成宠大的布线系统。因此,一种新的概念——汽车上电子控制器局域网络CAN,也就应运而生。为使不同厂家生产的零部件能在同一辆汽车上协调工作,必须制定标准。按照ISO有关标准,CAN的拓扑结构为总线,因此称为CAN总线。CAN总线被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECN之间交 换信息,在车载各电子控制装置ECN之间交换信息,形成汽车电子控制网络。
控制器局域网CAN(Controller Area Network)是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(ISO)的ISO11992、ISO11783以及汽车工程协会(Societyof Automotive Engigeers)的SAE J1939。CAN总线已经作为汽车的一种标准设备列入汽车的整车设计中。
CAN总线简介
CAN通信协议规定了4种不同的帧格式,即数据帧、远程帧、错误帧和超载帧。基于以下几条基本规则进行通信协调:总线访问、仲裁、编码/解码、出错标注和超裁标注。CAN遵从OSI模型。按照OSI基准模型只有三层:物理层、数据链路层和哀告层,但应用层尚需用户自己定义。CAN总线作为一种有效支持分布式控制或实时控制的串行通信网络,应用范围遍及从高速网络到低成本的多线路网络。如:CAN在汽车中的发动机控制部件、ABS、抗滑系统等应用中的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电器系统中,例如电气窗口、灯光聚束、座椅调节等,以替代所需要的硬件连接。其传输介制裁为双绞线,通信速率最高可达1Mbps/40m,直接传输距离最远可达10km/5kbps,挂接设备数最多可达110个。CAN为多主工作方式,通信方式灵活,无需站地址等节点信息,采用非破坏性总线仲裁技术,满足实时要求。另外,CAN采用短帧结构传输信号,传输时间短,具有较强的抗干扰能力。
CAN总线与其它通信协议的不同之处主要有两方面:一是报文传送不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,其特点是可在线上网下网、即插即用和多站接收;另外一个方面就是特别强化了数据安全性,满足控制系统及其它较高数据要求系统的需求。
在现代汽车的设计中,CAN总线已经成为构建汽车网络的一种趋势;而汽车网络作为直接与汽车内部各个ECU连接并负责命令的传递、数据的发送及共享,其可靠性和稳定性与整车的性能紧密相关。本文的设计开发是在基于试验条件下搭建的仿真平台,节点之间的通信是通过对等的CAN通信节点进行的。试验表明其运行性能稳定可靠,但实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高.
比如:
把CAN总线融合到嵌入式平台中,在其ARM-EP9315和ARM-S3C2440嵌入式平台上都做到了CAN总线功能的实现!ARM嵌入式控制平台,具有开放、集成度高、尺寸小、可扩展性强、低功耗等特点,非常适合与数字家电、车载设备、通信终端、网络设备等的应用。如今有了CAN总线的实现,使其在此方面的应用更为有效!
基于单片机AT89C52的CAN总线分布式测控系统的研制
1 CAN总线网络的技术特点[1][2]
用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等;
采用非破坏性基于优先权的总线仲裁技术,具有暂时错误和永久性故障节点的判别及故障节点的自动脱离功能,使系统其它节点的通信不受影响;同时,CAN具有出错帧自动重发功能,可靠性高;
信号传输用短帧结构(8字节),实时性好;
不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;
采用统一的标准和规范,使各设备之间具有较好的互操作性和互换性,系统的通用性好;
通讯介质可采用双绞线,无特殊要求;现场布线和安装简单,易于维护,经济性好。
总之,CAN总线具有实时性强、可靠性高、结构简单、互操作性好、价格低廉等优点,克服了传统的工业总线的缺陷,是构建分布式测控系统的一种有效的解决方案。
2系统总体硬件设计方案
首先,定义各节点的功能,确定各节点检测或控制量的数目、类型、信号特征。这是进行微机测控系统网络化的第一步。原则是尽量避免重复测试。智能节点模块绝大部分是输入输出模块,调节回路可以跨模块构成回路。但考虑到调节回路的安全性,为了保证在上位机或整个通信线路出现重大故障时回路调节不受到影响,设计了隔离型、自整定PID、隔离型温度调节器等带有调节功能的模块。它们的输入输出通道都在同一模块中,其底层软件的功能很强,所有的输入处理、输出增量的计算(多种调节算法可通过组态选择,包括串级调节)、输出,包括自整定模块的过程参数的自动识别都在本模块实现,保证了调节回路的安全性、可靠性。
其次,选择各节点控制器和相应的CAN适配元件。由于各测控节点功能相对单一,数据量少,因此对CPU的要求大大降低,采用8051系列单片机即可满足要求。CAN 总线适配器件主要有:控制器接口、总线收发器和I/O器件。采用Philips公司生产的82C200CAN控制器和与其配套的82C250CAN收发器。82C200具有完成高性能通信协议所要求的全部必要特性。具有简单总线连接的82C200可完成物理层和数据链路层的所有功能。
最后,按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN总线分布式测控网络。如图1所示。
3系统的硬件组成[3][4][5]
(1)CAN总线接口模块
① 微处理器
目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等;另一类是带有芯片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根据当前市场、开发工具和课题的实际需要,系统的智能节点均选用ATMEL 8位单片机AT89C52为微处理器。
② CAN控制器
CAN控制器选用SJA1000作为控制器。SJA1000是高集成度CAN控制器。具有多主结构、总线访问优先权、成组与广播报文功能及硬件滤波功能。输入时钟频率为16MHh时钟,输出可编程控制。由以下几部分构成:接口管理逻辑、发送缓存器、接收缓存器、位流处理器、位定时逻辑、收发逻辑、错误管理逻辑、控制器接口逻辑等。
SJA1000有很多新功能 :标准结构和扩展结构报文的接受和发送;64字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器;可进行读/写访问的错误计数器;可编织的错误报警限制:最近一次的错误代码寄存器;每一个CAN总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断;单发方式(当发主错误或丢失仲裁时不重发);只听方式(监听CAN总线,无应答,无错误标志);支持热插拔(无干扰软件驱动位速率监测)。因此,系统的智能节点均选用SJA1000作为CAN控制器。
③ CAN总线收发器
CAN总线收发器选用PCA82C250作为总线收发器。 PCA82C250是CAN 协议控制器和物理总线之间的接口。82C250 可以为总线提供不同的发送性能,为CAN 控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI)实现热防护等。为了进一步提高抗干扰措施,在两个CAN器件之间使用了由高速隔离器件6N137构成的隔离电路。 CAN器件与微处理器的硬件连接如图2所示。
硬件电路的设计并不太困难,但有几点应引起注意:
总线两端两个120Ω的电阻,对于匹配总线阻扰,起着相当重要的作用。忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。
82C50第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于民的阻值,实验数据表明15~200kΩ为Rs较理想的取值范围,在该方式下,可以使用平行线或双绞线作总线。
SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的VREF端(约为0.5 Vcc)与RX1脚相连,从而简化了电路。
在系统中,SJA1000的片选信号一般由地址总线经译码获得,并由此决定出CAN控制器各寄存器的地址。实际应用中,采用单片机AT89C52的P2.7为片选信号。所以,SJA1000的地址为:7F00~7F32H。
当上电复位时,AT89C52的上电复位,需要从低到高的电平变化来激活,而SJA1000的17脚RST被激活,需要出现一个由高电平到低电平的跳变,因此,这必须加一个反相器。
(2)数据采集模块
数据采集模块用来将各类传感器的数据传送到CAN总线上。整个电路包括:看门狗X5045,单片机89C52,锁存器74LS373,A/D转换器ADC0809以及CAN控制器SJA1000和收发器82C250。电路板如图3。
数据采集模块的工作原理:各类传感器采集到数据后将0—5V的模拟量传送到ADC0809,0809将转换成的数字量传给89C52,最后单片机将采集到的数据送到SJA1000通过CAN总线收发器82C250传上总线,完成数据采集工作。
(3)控制模块
是一个带有CAN通信功能的隔离型控制器。该模块有一个数据输入点,可以是命令或其他信号,有一个模拟量输出,供输出执行机构是连续变化的控制系统使用,例如控制步进电机;还有一路是数字量输出,供执行机构是两位式的控制系统使用,例如开关设备。这个控制器可以单独作为一个调节器使用,因为在该模块上提供了完整的显示窗口和操作按钮,可以设定温度设定值、PID调节参数等运行过程中可以显示被控对象的PV值和SV值。该模块可以根据设定的控制点及升、降的时间实现自动调节。带有CAN通信口,可以与微机实现通信,也就是说控制模块可以接入CAN 网络系统。通过上位机实现对多个节点上的控制模块设定各控制点的上下限控制点、PID值、实现时间等控制参数,并实时记录各控制器的测量值,描绘出变化曲线,供实验人员对实验结果进行分析。如图4所示。
4系统软件设计
(1)CAN 总线通讯模块
CAN总线测控系统的通信软件分为3部分:CAN初始化、数据发送和数据接收。
① CAN初始化
其主要是设置CAN的通信参数。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间可写访向,因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,并且系统中各CAN控制器的总线定时寄存器的初始化字必须相同。
② 数据发送
现场的各传感器把环境多参数的检测信号(数字量、模拟量、开关量)进行转换处理后,发向CAN控制器的发送缓冲区,然后启动CAN控制器的发送命令,此时CAN控制器将自动向总线发送数据,不再需传感器的微控制器进行干预。若系统中有多个传感CAN控制器同时向总线发送数据,则CAN控制器通过信息帧中的标识符来进行仲裁,标识符数值最小的CAN控制器具有对总线的优先使用权。
③ 数据接收
整个温室微机测控系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向89C52微控制器发送接收中断,启动中断接收服务程序,89C52通过执行中断接收服务程序,从CAN控制器的接收缓冲区读取数据,并对其进行进一步处理工作。
(2)监控模块
集成了所有的数据采集、参数设定、数据统计分析等功能。同时,为了实现操作人员对生产过程的人工干预,如修改给定值、控制参数和报警限等,添加了参数的修改功能;为了建立人机信息联系,并且能将各节点传输来的数据以图形、图表或其它动态方式显示出来,本系统可以使用任何具有DDE(Dynamic Data Exchange)接口的MMI(Man-Machine interface)软件;为了更好的管理各种数据,采取了组态控制方式,能够接收来自MMI软件以及用户软件的DDE连接请求,并将该请求传递给通信驱动部分,由通信驱动转换为通信信号通过传输媒体传递给智能模块的固化软件。并将模块的应答作为DDE操作的结果返回给MMI软件及用户软件。
5 结论
将先进的现场总线技术(CAN BUS)应用于智能测控系统,大大提高了系统的可靠性;自主开发了符合国际标准的基于单片机的智能节点,不仅大量节约了资金,而且可以购置通用的同类设备,可节约大量的研发费用;基于工控机的上位机提供了良好的人机界面,使操作更加方便,直观。
7. 基于can总线的监控平台设计 能不能做为毕业论文
在线客服系统是一种网页版即时通讯软件的统称,在线客服系统共有的一个特点是:网站的所有者想要使用在线客服系统,必须先向在线客服系统申请一个帐户,然后生成网页标签,就是一段代码,然后把这段代码嵌入到网站网页当中。用申请的帐户登录在线客服系统,就可以开始用了。
在线客服系统:乐盈通在线客服系统,B/S架构,上网的地方就能用,这才是真正的在线客服系统。
8. 急求基于proteus的can总线通讯系统仿真系统设计的原理图和程序
实话给你说吧,CAN-bus是不能用Proteus 仿真的,我开始CAN的时候,也是寻求仿真,
can电路很简单很成熟MCU+sja1000+82c250较多,还有一些ARM+can收发器的,
网上的程序千奇百怪,我也试着下载了一些,没有一个能调通的,
后来结合说明书,CAN调试通过了,并设计了CAN隔离器、can-232等应用模块,
给你一些建议,你还是自己搭建电路,然后按照sja1000说明书,调试
1、电路MCU+sja1000+82c250,价格总共不超过20元,建议一次买三套,我第一次买的时候才买2套,不能通信,我还以为是程序问题呢,后来才知道是芯片有问题了
2、程序设计,参考sja1000说明书,还有就是下载别人的程序(虽然不能用),对照别人的程序和说明书,自己该参数,
3、找一些高人指导(别人可能不愿意免费指导,可以给一些好处,)我认为调试can,不过一周就OK了
祝你成功
9. 基于单片机的CAN总线通信系统设计 请问此毕设题目最终能做出什么实际东西 顺便求开题报告相关资料
我can总线主要用于通讯跟串口差不多,抗干扰能里强,我看过设备中的线环由于楼水而导致线于线之前导通存在电阻,485通讯基本失效,但CAN仍能正常工作
10. 能不能详细介绍下can总线与上位机通信的方式方法,好的话的会再加分,急用 谢谢!
CAN与PC 直接是不能通信的,
can要与pc数据交换需要用转换器,常见的有can-232或can-usb
基于can-232的,我设计过,usb的我还没有做过,其实很简单,如果自己做的比较费劲,可以买一个转换器,估计也不是很贵。
自己做的话给你一些思路:
1、可能你需要这个是做采集用的,你先做好基于单片机的采集电路及程序,
2、can转232电路比较成熟,版本大都一个样,mcu+sja1000+82c250
3、转换程序,从网上买或搜索一些,搜索的大都不能用。
can通信仅仅是一个传输介质,不是很高深的东西
OK