在S3C44B0上的μCOS-II中实现CAN总线智能节点

发布者:Enchanted2023最新更新时间:2023-02-03 来源: elecfans关键字:S3C44B0  μCOS-II  CAN总线  智能节点 手机看文章 扫描二维码
随时随地手机看文章

在系统越来越复杂,功能越来越强大的今天,嵌入式系统的设计中采用实时多任务操作系统已经成为嵌入式应用设计的主流。μCOS-II是一个开源嵌入式实时操作系统(Real TIme OperaTIng System, RTOS),它已经被成功移植到各种CPU上。但是基于μCOS-II的应用软件需要在移植操作系统后自行完成。模块化的应用程序设计可以使得嵌入式设计变得更加方便,产品的开发更加迅速。S3C44B0是三星公司生产的一种ARM7芯片,性能强大,在通用嵌入式设计中运用广泛。CAN总线(Control Area Network)是一种有效支持分布式控制和实时控制的现场总线,由于其高性能和高可靠性,CAN总线的应用范围广布过程工业、机器人和机械工业等领域。论文将μCOS-II移植到S3C44B0上,设计开发了基于μCOS-II的CAN通讯模块,与传统的前后台形式的系统相比较,CAN总线在μCOS- II下运行,实时性更容易得到保证,更容易进行功能扩展。


1 S3C44BO简介

S3C44B0是三星公司设计的16/32位RISC处理器,为手持设备等提供一个低成本高性能的方案。S3C44B0提供2.5V ARM7TDMI内核,最高时钟频率66MHz,总线寻址空间达到256M,采用中断矢量表来减少中断延迟,提供30个中断源,支持C语言编程和多任务处理,具有丰富的片内资源:LCD控制器、2路UART、2路DMA、外部存储器控制器、5路带PWM输出的定时器、看门狗、RTC、8路10bit ADC、IIC接口、IIS接口、SIO等等。


2 SJA1000和82C250简介

SJA1000是一种独立CAN控制器,它是PHILIPS公司的PCA82C200 CAN控制器的替代产品。SJA1000具有BasiCCAN和PeliCAN两种工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0B 协议。SJA1000同时支持11位和29位识别码,位速率最快可达1Mbits/s,时钟频率最高为24MHz,支持PeliCAN模式的扩展功能,如支持一些错误分析功能,支持系统诊断、系统维护、系统优化等。


82C250是PHILIPS公司生产的CAN总线收发器,提供对总线的差动发送和差动接收功能,另外还具有电流限制电路,提供了对总线的进一步保护功能。


3 μCOS-II在S3C44B0上的移植

μCOS-II (micro-controller OS II)是一种开放式的操作系统内核,它是专为微控制器系统和软件开发而设计的占先式的实时多任务操作系统微内核。μCOS-II是一个源码公开、可移植、可固化、可剪裁、具可剥夺性、可确定性的实时多任务操作系统。它的绝大部分代码是用ANSI C语言编写的,只有和处理器相关的不到200行代码是用汇编语言编写,因此可移植性很好,比较容易移植到各种体系的CPU上面。本文中将μCOS-II移植到S3C44B0上面运行,该移植工作主要是三个文件的修改工作:

改头文件OS_CPU.H相关内容,包括:数据类型定义、堆栈增长方向、中断相关的一些宏定义等。


在OS_CPU_C.C中编写任务堆栈初始化函数及系统HOOK函数。

在OS_CPU_A.ASM中编写四个汇编语言函数:OSSstartHighRdy()、OSCtxSw()、OSINTCtxSw()和OSTIckISR()。

完成上述工作后,μCOS-II就可以运行在S3C44B0处理器上了。


4 CAN总线智能节点的软硬件结构

CAN总线是现场总线的一种,它结构简单,通信方式灵活,采用非破坏性仲裁技术,通信采用短帧格式,从而可以形成低成本,高性能,实时性好的通讯系统。


4.1 CAN总线智能节点的硬件结构

用S3C44B0和SJA1000来实现CAN总线节点时,SJA1000采用地址数据复用的数据传输方式,而S3C44B0却采用分开的地址总线与数据总线,因此,不能像51系列单片机和SJA-1000那样直接相连,而必须另想办法。将发送的地址和数据都从数据总线上发出,而用IO口和 nGCSx, nOE, nWE等信号来形成ALE信号和读、写、片选信号接到SJA1000,这样就可以完成S3C44B0和SJA1000的连接,在硬件上形成CAN总线节点,同时为了保证信号不互相干扰,采用光耦6N137来进行隔离。另外,S3C44B0的3.3V信号和SJA1000的5V信号之间需要进行电平转换。

在S3C44B0上的μCOS-II中实现CAN总线智能节点


4.2 CAN总线智能节点的软件结构

采用BasicCAN模式,RX和TX缓冲器各是10个字节长,其中两个ID字节和最多8个数据字节。其中ID字节1是8个ID位,ID字节2是3 个ID位,1个远程发送请求位和4个数据长度代码位。11位的ID能够建立2032种报文类型,足够普通应用的需求。ID位的规定可根据实际需要自行定义。


发送报文时调用CAN发送函数U8 BCAN_DATA_WRITE(U8 *SendDataBuf),其中*SendDataBuf指向要发的内容。在这个函数里,将报文内容按CAN接受缓冲器规定的格式填入,然后调用命令函数U8 BCAN_CMD_PRG(U8 cmd),其中cmd参数决定命令类型,选用发送数据命令将报文发送出去。


接收报文时调用CAN接收函数U8 BCAN_DATA_RECEIVE(U8 *RcvDataBuf),其中*RcvDataBuf是报文的存储地址。在这个函数里,读取接收缓冲区里的数据,并存到指定的位置。


这两个函数只是发送与接收函数,具体的发送和接收需要建立相应的任务或中断,并调用这两个函数来完成。其中发送采用主动方式,当发送任务接到启动发送的指令后调用CAN发送函数进行数据发送,接收采用中断方式,CAN中断的优先级高于时钟中断和其他任务。


节点通信流程图如图2所示:


5 基于μCOS-II的CAN总线通讯程序模块的设计

传统的前后台方式设计的单片机程序是一个无限循环,循环中调用相应函数来完成相应操作是其后台行为,而中断服务程序处    

在S3C44B0上的μCOS-II中实现CAN总线智能节点

理异步事件是其前台行为。μCOS-II是一个实时多任务操作系统,是一个基于占先式内核的多任务调度平台。作为一个模块的CAN总线程序,在嵌入 μCOS-II之中,相对于前后台方式而言,CPU的运行时间被μCOS-II依据调度算法按照不同的优先级分配给不同的任务模块,各个任务程序在自己的运行时间内访问CPU,这样CAN总线的实时性更容易得到保证,同时各任务相对独立,相互影响小,也便于对程序的调试,更重要的是如果要实现更为复杂的通讯协议时不用改变原有的程序结构,只需增加扩展部分的程序就可以进行功能扩展。


本文中CAN总线如上所述采用主动方式发送和采用中断方式接收数据,CAN中断优先级高于其他任务的优先级。本文中数据发送建立一个独立任务,它拥有自己的堆栈空间,可以被其他的任务和中断服务子程序挂起或删除。这个任务分配128个OS_STK的堆栈空间,在μCOS-II中OS_STK被定义为一个字长。


系统建立了两个任务(不包括统计和空闲任务):起始任务Main_Task和发送任务CANSENDDATA_Task,优先级分别为10,12。在CAN控制器初始化和OS初始化后,建立起始任务Main_Task,OS开始运行,进入起始任务Main_Task,起始任务启动时间节拍,并创建发送任务,然后进入挂起。发送任务进入运行态,当发送数据完成后,发送任务挂起。


两个任务在各自的延时结束后按照优先级先后进入运行态,若都在挂起状态则系统的空闲任务进入运行。此过程中如果有接收中断发生,则中断服务将挂起正在运行的任务,并调用CAN数据接收函数,完成数据的接收,当此过程结束后恢复现场,继续进行高优先级的任务。图3是CAN通信模块在μCOS-II中运行的系统结构框图:
 

在S3C44B0上的μCOS-II中实现CAN总线智能节点

本文利用上述思想所设计的CAN总线智能节点与ZLG USBCAN-1型CAN总线开发设备互相通信正常,从图4可以看到数据接收和发送的顺利进行。       


结束语

在S3C44B0上运行的μCOS-II中实现CAN总线智能节点,能够克服传统前后台编程方法的弊端,并且提供模块化、可移植性好、高实时性、易扩展的通信模块,能够大大减少产品的开发时间。


关键字:S3C44B0  μCOS-II  CAN总线  智能节点 引用地址:在S3C44B0上的μCOS-II中实现CAN总线智能节点

上一篇:基于UClinux2.4.x+S3C4510B开发平台的USB-HOST驱动设计
下一篇:采用S3C44B0芯片实现基于步进电机控制的微波频率自动测量系统设计

推荐阅读最新更新时间:2024-11-01 08:17

C8051F040在基于CAN总线的分布式测控系统中的应用
摘要:CYGNAL生产的单片机C8051F040是代表8位单片机发展方向的高速(25M)混合信号系统级芯片(SOC)它不仅集成了一般测控系统需要的外设,而且集成了很有发展前景的现场总线—CAN总线控制器,文中对该芯片中的CAN控制器结构作了分析,并给出了在分布式测控系统中使用该芯片的智能节点的硬件、软件设计方案。 关键词:C8051F040;CAN总线;分布式;测控节点 1 概述 分布式在线测控系统是由多个面向设备的、以MCU为核心的智能处理单元和多个并行运行且具有不同监测和故障诊断功能的微机构成的。该系统采取“分治”的设计思想它将数据采集以及部分数据处理任务交给设备层的智能处理单元去完成而监测诊断层主要负责监视和故障
[应用]
基于CAN总线的汽车内部网络系统研究
摘要:研究汽车局域网CAN总线在汽车中的具体应用,实现采用Motorola公司16位单片机MC9S12DP256为核心的CAN节点设计。根据汽车内部CAN网络速率的不同,给出不同速率网络之间实现通信的网关软硬件设计。该系统具有结构简单、可靠性高等特点,具有广阔的应用前景。 关键词:汽车内部网络 CAN总线 MC9S12DP256 引 言   随着车用电气设备越来越多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,从电源管理到为提高舒适性而作的各种努力,使汽车电气系统形成一个复杂的大系统,而且这一系统都集中在驾驶室控制。另外,随着近年来ITS的发展,以3G(GPS、GIS和GSM)为代表的新
[传感技术]
基于CAN总线可通信智能电流继电器的设计
  0 引言   传统继电器检测和保护功能多由电磁器件完成,其动作时间长,保护精度低,已不能满足现代输、配电系统自动化的需要。智能化低压电器在国外取得很大进展,其强大功能的充分发挥,必须依赖于低压配电与控制系统网络化。国外主要低压电器制造商开发的新一代低压产品,其技术特点主要是可通信,能与现场总线连接,这种技术给低压电器带来革命性的变化,为此对低压电器提出了可通信要求。因此,能实现联网通信、集中监控的智能化电器越来越成为需要。其主要特征是在智能化的基础上具备基于现场总线的可通信特点。   本文研究的电力系统限时速切继电器的保护功能,是采用微处理技术和现场总线技术等设计的可通信的智能化继电器。在以可通信的智能化电器系统应用中,现场
[嵌入式]
基于s3c44b0微处理器和rtl8019as芯片实现远程温度监控系统设计
引言 当今社会已经进入数字信息技术和网络技术高速发展的后pc(post-pc)时代,嵌入式设备已经渗透到各个领域,逐渐向着网络化方向发展,如视频监控、网络摄像头、远程控制、信息家电等都离不开嵌入式设备与网络的结合。 目前,国内的远程温度监控系统主要是用单片机和pc终端完成,单片机将采集到数据的经串口发送到pc机,pc机将数据处理后,采用tcp/ip协议将数据发送到互联网上,实现数据的远程采集。这种方式依赖于pc机,不灵活、不稳定、功耗高,采用ARM架构的微处理器为核心的嵌入式单元作为独立的终端实现的远程温度监控系统,具有体积小、价格低、功耗低、稳定可靠的特点,可用于远程监控、教学实验等。 1.系统的硬件组成 本文描述的远程
[单片机]
基于<font color='red'>s3c44b0</font>微处理器和rtl8019as芯片实现远程温度监控系统设计
智能断路器的CAN 总线网络节点设计
  0 引言   近年来,智能脱扣器技术在国内有了较快的发展。智能脱扣器的成功应用,使得断路器的功能更加强大。目前,国内外研究生产的智能脱扣器能显示开关状态、三相电流、电压、功率因数、有功功率等参数。而控制器局域网(CAN) 能有效支持具有高安全级的分布式实时控制,凭借其在噪声环境中的可靠性及其故障状态检测,以及从故障状态恢复的能力,被广泛应用于工业控制等领域。因此,国内外大都将比较成熟的CAN 现场总线技术应用在智能脱扣器的通信方面,实现上下位机的“四遥”功能,即遥测、遥控、遥信和遥调。上位机CAN 主要对下位机采集到的信号进行监控、调度和管理。上位机作为一个特殊的CAN 节点,其设计相对复杂。本文将重点介绍上位机CAN 智
[嵌入式]
can总线产品在机场跑道灯监控系统中的应
  系统介绍:   民航机场跑道灯,边线灯等是飞机安全着陆的重要条件,每当日光不足或者夜间,跑道灯一定要点亮以给准备着陆的飞机指示跑道的方向和轮廓,引导飞机安全着陆。当这些灯光部分损坏,会给飞机安全带来严重的后果。如何自动巡回检测这些灯光的工作状态是一个机场安全的重要课题。   具有专利技术的机场跑道单灯监控装置是可以同时监视从同一个供电的调光器控制的近百盏灯的装置。若干调光器联合工作构成了机场的跑道照明系统,而配套的若干监控装置也可以同时构成一套完整的监控系统。   设计要求:   1.将若干监控装置传来的灯状态信息集中并采集到数据库中(其中每个监控装置传送近百个灯状态)并通过软件动态显示在计算机
[嵌入式]
基于单片机的并联液压混合动力车控制系统
目前,我国城市公共交通主要依赖公交车,站间距离一般在500~1000米。公交车在每站间有数次刹车和启动,在交通流量的高峰期,刹车和启动更加频繁,带来能源浪费、尾气污染加剧、部件寿命缩短等一系列问题。 本课题研究的控制系统,可使并联液压混合动力车充分利用制动能量,在频繁刹车和启动的路况,可以明显提高车辆启动、加速和减速特性,改善车辆排放,降低油耗,延长发动机及刹车装置的寿命。而且与混合动力电动车相比,该系统在成本,技术成熟度,可靠性,维护性等方面均占有相当的优势。 并联式液压混合动力车的动力传动系中有两种或两种以上的动力源可同时或单独提供动力,有两个或两个以上相应的执行元件可同时驱动负载,该动力传动系主要由发动机、变速箱
[单片机]
基于单片机的并联液压混合动力车控制系统
stm32f4关于can总线的学习心得
今天花了一天的时间学习了stm32f4的can模块的相关知识,首先我学的时候显示从can协议这块入手,而后进入stm32的配置和使用上,期间子啊百度上找了好多资料这里吧我的理解跟大家分享一下,希望我理解不足和错误的地方大家给指出来。 对于stm32的使用就是三个步骤 1:学习怎么配置相应的寄存器 2:学习怎样发送数据 3:学习怎样接收数据;但是在这个之前的学会对can总线协议的一些了解; 这里我拿我学习的时候看的一篇百度文章来说明吧: 当CAN总线上的一个节点(站)发送数据时,它以报文的形式广播给网络中所有节点,对每个节点来说,无论数据是否是发给自己的,都对其接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格
[单片机]
stm32f4关于<font color='red'>can总线</font>的学习心得
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved