长沙嵌入式培训学校
全国服务热线:400-0859-208

长沙c/c++语言培训通过率排名一览

威盛嵌入式系统走进公交领域

随着信息化的普及,现在公交车、地铁或者出租车里的移动电视已经不再是什么希罕的新闻了,然而,众多的“移动电视”播放机究竟是如何打造的呢?威盛电子嵌入式产品事业部VEPD的EPIA系列主板,就是典型的解决方案。



  以上海目前已经使用的一些的公交多媒体广告机为例,它采用的正是VEPD的EPIA-PD10000嵌入式主板。这款主板属于EPIA系列嵌入式主板的PD系列,该系列主板基于 VIA CLE266 芯片组,支持威盛电子的C3和Eden处理器,威盛处理器的特色是低功耗,因此对于移动视频播放终端来说,一方面可以免去风扇的设计,避免灰尘和体积的诸多不便,另一方面也更加节约能源,适合移动交通工具长期使用。

  CLE266芯片组具有内嵌硬件 MPEG-2 加速器与整合的 S3 Graphics VIA UniChrome™2D/3D 图形控制器,这使得这块主板构成的多媒体广告机译码和播放性能强劲。另外主板提供了六个 USB 2.0 接口、四个 COM 接口与两个 10/100 Mbps 以太网接口,支持ATA-133设备,因此终端的多媒体播放机可以很方便的从网络或者本机硬盘/电子硬盘上获得视频数据。关键的地方,在于VIA EPIA PD还提供了嵌入式 LCD 面板的支持,因此使用了该主板的终端播放机,外观上看起来与普通的LCD并无两样。,EPIA PD还提供了一条PCI插槽提供了附加的扩充能力,大记忆带宽的 DDR266 SDRAM 和的高速数据传输速度提供了运行商业数字和音频应用的能力。

VIA EPIA PD符合 Mini-ITX 规格,尺寸只有17 cm x 17 cm,轻薄的结构使其更能节省空间,也更方便其应用在平板计算机、信息家电等嵌入式产品中。除了公交移动电视,楼宇多媒体信息终端等领域,也都是EPIA-PD大显身手之地。


基于RTCORBA技术的嵌入式代理服务器设计

引言

  现场控制网络技术、信息网络集成技术和分布式实时技术的发燕尾服和成熟,使集成信息网络和现场控制网络的分布式实时测控网络成为未来工业测控系统的发展方向。在这这样一个测控网络中,实现异构网络无缝互联的关键是代理服务器。使用基于实时中间件的代理服务器,既能满足实时互联的要求,又使代理服务器屏蔽了底层测控设备的实现细节,减少了系统开发的难度;同时,基于面向对象技术,各种测控设备的连接与安装难度也大幅度降低。

  本文使用Linux+RTCORBA的系统架构设计一个嵌入式代理服务器,用于LON网到以太网的互联,并且使用基于ARM7的单片机实现了该嵌入式代理服务器。

  1 RTCORBA技术简介

  CORBA是OMG推出的一个重要的工业规范,是OMA(Object Model Architecture)的核心部分。OMA所采用的方法,是为面向对象的应用提供一个公共框架,如果符合这一框架,就可以在多种硬件平台和操作系统上建立一个异质的分布式应用环境。

  OMG在制订CORBA规范时,首先考虑的是互操作性,用以解决异种平台上的不同对象的协作问题;所以,需要将CORBA规范进行扩展,以满足分布式实时应用的需要和测控系统的实时性要求。在1999年3月,OMG发布了实时CORBA1.0规范。OMG已将它作为CORBA3.0规范的一部分。

  实时CORBA对原有的规范进行了扩展,定义了标准的接口和QoS策略,其扩展的具体内容为:

*将客户的CORBA::Current接口扩充为RTCORBA::Current接口;

*将服务器的PDA扩充为RTPOA;

*将ORB扩充为RTORB;

*增添了RTCORBA::Priority接口和RTCORBA::PriorityMapping接口;

*增添了RTCORBA::Threadpool接口;

*增添了Scheduling Service。

  这些扩展可具体分为对处理器资源、内存资源和通信资源的管理三个部分。

  2 嵌入式代理服务器设计与实现

  代理服务器屏蔽了底层测控设备的实现细节,向上层提供统一的数据服务,在测控网络中起着纽带的作用。为了实现分布式实时测控网络,其中核心的问题之一就是实现一个代理服务器。由于代理服务器需要应用于工业现场,要求能在较宽温度范围内工作,并且还要求封装牢固(抗振和防冲击)、导轨安装、电源冗余、DC供电等。另外,从低功耗、低成本、小何种的角度来看,使用嵌入式系统都优于使用通用系统,故本文选用嵌入式系统来实现代理服务器。

  整个代理服务器可以分为硬件平台层、操作系统层、实时中间件层和应用程序四个层次来实现,如图1所示。

  2.1 硬件平台

  在这种方案中,代理服务器一方面通过各种驱动或服务程序与现场设场设备实时交换数据,另一方面通过ORB与应用程序交换数据。代理服务器可以提供对LON现场总线、常规通用工业串行通信总线RS485/RS232、常用DCS/PLC等多种现场控制协议的支持,其硬件框图如图2所示。通过使用代理服务器,屏蔽了底层的现场总线通信协议,使用面向对象的方法将每一个现场设备都实现为网络中的一个分布式对象;通过对象方法调用向上层应用提供统一的服务,使得上层应用可以直接通过调用代理服务器中的对象方法来控制底层测控设备。

  (1)微处理器模块

  微处理器模块包含所有使得微处理器能够正常工作的部分。它包括微处理器、Flash、SDRAM、电源、JTAG接口电路、复位电路和晶振电路。根据需求,我们选用三星公司的基于16/32位ARM7TDMI核的S3C4510B微处理器。它专为以太网通信系统而设计,具有低成本和高性能的特点,并集成了多种外围器件。

  (2)10M/100Mbps以太网通信模块

  这个模块用来与以太网通信。S3C4510B内嵌了一个以太网控制器,支持媒体独立接口(MII)和缓冲DMA接口(BDI),可在半双工或全双工模式下提供10M/100Mbps以太网接入。实际上芯片已经包含以太网MAC控制,但未提供物理层接口,需要外接一块物理层芯片。

  本系统使用RTL8201作为以太网的物理层接口芯片。它的主要功能包括物理编码子层、物理媒体附件、双绞线物理媒体子层、10BASE-TX编码/编解码器和双绞线媒体访问单元等;同时,带有MII接口,可以简单方便地与S3C4510B连接,如图3所示。

  S3C4520B的MAC控制器可以控制31个RTL8201,每个RTL8201都必须有不同的PHY地址(00001B~11111B)。系统复位时,由锁存引脚9、10、12、13、15的初始状态确定PHY地址。但是,由于锁存引脚也复用为LED引脚,故不能直接接电路或地。

  (3)LON现场总线通信模块

  代理服务器作为LON现场总线中的一个节点与现场检测设备通信,所以LON现场总线通信模块要包括与LON网络通信和与S3C4510B通信的功能。

  LonWorks总线通信模块主要由神经元芯片、LonWorks双绞线网络收发器、程序存储器、数据存储器等组成。在该代理服务器的应用中,实际上仅仅把Neuron(TMPN3150)芯片作为通信处理器用,由其按照LonTalk协议与LonWorks网络上的所有智能节点进行通信,同时将通过并行口与主CPU通信。它将从S3C4510B接收到的来自以太网络的其它网段数据或上层控制命令通过特定的寻址方式由LonWorks收发器传向LonWorks网,或将从LonWorks网上接收到的LonTalk协议报文由通用I/O发给S3C4510B,再由S3C4510B进行处理。由于开发Neuron芯片时采用的Neuron C(专门为Neuron芯片设计的编程语言,从ANSI C中派生出来的)语言,故内存占用大。另外,作为通信协议处理器使用要求有大量的数据缓冲区进行数据交换,而仅仅利用TMPN3150内部的2KB RAM容量是均无不够的,因此我们扩展了外部存储器Flash和RAM。由于采用Flash,可以非常方便地修改用户程序。

  LON现场总线通信模块原理如图4所示。

  2.2 操作系统层

  操作系统层不仅仅是操作系统软件,它一般包括两个部分:

  ①引导加载程序,包括固化在固件(firmware)中的boot代码(可选)和Boot Loader两大部分;

  ②内核和文件系统,包括 Linux内核、根文件系统和建立于Flash内存设备之上的文件系统。

  (1)Linux内核

  作为候选的一种嵌入式操作系统,嵌入式Linux以其引入注目的优势,极大地吸引电子设计工程师从自己书写的或专用的RTOS转移到Linux。UClinux是专为那些没有MMU(内存管理单元)的嵌放式处理器开发的嵌入式Linux。

  www.uclinux.org为uClinux提供了GNU的交叉编译器,包括以下组件:

*Gcc交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;

*Binutils辅助工具,包括objdump、as、ld等;

*Gdb调试器。

  使用这些工具搭建了嵌入式应用开发平台后,就可以在标准的Linux平台上开发应用了。搭建了开发平台主要有以下几步:

①获得uClinux-dist的源码包;

②建立ARM交叉编译环境;

③针对硬件修改配置;

④编译内核;

⑤内核加载运行。

  (2)BootLoader

  引导加载程序是系统加电后运行的段软件代码。在PC中引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OS Boot Loader(如LILO和GRUB等)一起组成。而在嵌入式系统中,通常并没有像BIOS那样的固件程序(有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由Boot Loader来完成。在一个基于ARM7TDMI核的嵌入式系统中,系统在上电或复位时都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。

  通过Boot Loader,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为终调用操作系统内核准备好正确的环境。Boot Loader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,我们需要设计与实现自己专有的Boot Loader。

  在我们的系统中,内核映像与根文件系统映像都被加载到RAM中运行。之所以这样是因为,虽然在嵌入式系统中内核映像与根文件系统映像也可以直接在ROM或Flash这样的固态存储设备中直接运行,但这种做法无疑是以运行速度的牺牲为代价的,会影响到实时应用。

  Boot Loader分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的;而stage2则通常用C语言来实现,这样可以实现较复杂的功能,而且代码会具有更好的可读性和可移植性。

  2.3 ORB

  目前基于CORBA规范的产品有很多,的就有Orbix2000、JacORB、MICO、Visibroker、ORBit、TAO等。这些产品各有优缺点。这几种ORB产品中,TAO(The ACE ORB)是美国华盛顿大学的Douglas C.Schmidt博士领域开发的一个实时CORBA平台,是基于ACE创建的。它是一个开放源码项目,是完全0元的。使用C++语言开发,符合CORBA标准,而且还为高性能需求的实时系统进行了优化。因此,需要在Linux上安装ACE/ATO开发环境,ACE和TAO可以协同工作来提供复杂中间件解决方案。

  2.4 应用程序开发

  在基于中间件的分布式测控系统中,应用软件的编写发生了极大的变化。我们只需使用IDL编写统一的接口,就不必每次使用都考虑实现细节。

  一个实时CORBA应用在逻辑上分为客户和服务器两个部分。客户端向服务器端主动发起服务请求,服务器端则被动接收服务请求。一个实时CORBA应用的客户端常包含多个服务请求(方法调用);除此外,还包含在本地执行的代码。在服务器端,则包含了这个方法的实现。在我们的这个系统中,代理服务器就是一个服务器端,测控网络中其它的工作站则是客户端。它们调用代理服务器上的方法,以获取现场检测数据和修改现场设备的参数。

  在服务器端,一般每个现场设备对应一个实时对象。这个对象提供操作这个对象(设备)的方法和对象的性质。如果客户端需要操作某一个设备,它只需请求调用代理服务器上这个设备所对应的实现对象的方法,代理服务器所获得的数据以返回值的形式传给客户端,这样就完成了一次服务。实际上,这些实时对象作为现场设备的代码,对上层应用屏蔽了设备实现的复杂性,提供统一的服务。

  ORB机制可以透明地实现传送请求给对象,并将响应返回给提出请求的客户。通过使客户不再管理方法激活的具体实现,从而简化了分布式应用程序。当客户激活一个方法,ORG负责定位对象实现并透明的激活。将请求传输给对象实现并返回结果。通常ORB包括对象实现、对象定位和对象通信机制。这些特性允许应用开发者更多地关心其本身的应用领域的开发,而较少考虑低级的分布系统程序设计。但是,为了提高更丰富的功能,不应该仅仅使用CORBA默认的定位、通信机制,还需要使用到CORBA的各种对象服务。

  在我们的实现中,设备对象都有自己的状态信息,这些信息都将通过事件服务来传递。在使用事件服务之前,应先启动事件服务器。在我们的系统中使用的是TAO的事件服务器。启动事件服务器后,命名服务器将注册到智能代理中,并将事件服务通常的IOR定入一个文件。然后可以使用这个IOR文件启动事件提供者程序和使用者程序。

  3 总结

  分布式中间件技术在信息技术领域已经得到了广泛应用。使用分布式中间件技术可以方便地开发、集成、升级和维护各种应用系统,大大降低了构建应用系统的代价,并极大地提高了生产效率。开发和应用分布式实时测控系统也必将成为起来测控网络的发展方向。

  本文使用基于RTCORBA中间件技术的代理服务器来连接两种异构网络,实现LON网到Ethernet的互联,并且具备了数据透明传输、无缝互操作、实时的特性,在测控网络中具有极大的使用价值和广阔的发展前景。

长沙粤嵌教育,专业IT培训就业教育,粤嵌C+ +软件工程培训班,理论实践,线下实训培训,选粤嵌教育从学习到就业-站式服务, 0元试学,欢迎前来预约试听。C++是一种程序语言,应用范围广,有很多人都喜欢,想要学习C++的学员,粤嵌教育开C+ +软件工程培训班,帮助学员完成自己的目标。

粤嵌C++嵌入式开发培训班


物联网国际软件工程师就业班(C/C++方向)

课程概述

包括阶段,600学时(预计),各阶段项目贯其中,让你掌握C++开发相关专业技术!

阶段:C/C++语言开发基础

第二阶段:Unix/Linux平台(及嵌入式Linux平台)C++应用开发

第三阶段:跨平台QT开发(uindows/unix/macos/嵌入式平台)

第四阶段:大项目开发


课程目标

1、精通linux操作系统使用、网络配置、shell脚本编程等;

2、熟练掌握GNU工具gcc、gdb、makefile;

3、精通linux下C语言编程;

4、精通linux下C++语言编程;

5、深入理解面向对象编程思想。


招生对象

1、欲从事C++方面开发的研发人员;

2、计算机、电子、自动化、信息工程相关专业;

3、大学专科及专科以上学历。


入学条件

基础差;

对C++开发有强烈兴趣,大学专科及专科以上学历。


课时数

600课时

优惠咨询

课程大纲
粤嵌物联网国际软件工程师就业班(C/C++方向)培训的课程体系根据嵌入式企业不断变化的用人需求及多年的技能培养经验,结合培训学员的自身技能提升特点,将整个课程体系分为“四阶”梯度,由浅到深,由基础技能到高阶技能的培养贯穿于一体,覆盖“专业技能”、
“职业素养”、“心理素质”等方面。
阶段 C/C++语言开发基础
主要内容

本阶段熟练掌握unix/Linux使用及基本命令,掌握数据类型运算符及表达式,深入了解C++类与对象的问题,熟悉线性表与相关函数,通过相关的项目实践来达到阶段学习目标。

具体课程

1、unix/Linux基本命令

2、C/C++面向过程开发

3、C++面向对象开发

4、数据结构及基本算法

5、模板与STL

6、项目及测试

第二阶段 Unix/Linux平台(及嵌入式Linux平台)C++应用开发
主要内容

初步接触交叉开发、进程间通信、数据库开发以及网络编程等相关知识,通过实际项目开发来深入理解各种知识的用法。

具体课程

1、嵌入式交叉开发

2、unix/Linux文件IO

3、unix/Linux并发技术

4、socket 网络编程

5、shell 脚本编程

6、数据库开发

第三阶段 跨平台QT开发(uindows/unix/macos/嵌入式平台)
主要内容

主要学习QT开发相关知识,比如:QT数据库、QT网络、QT线程、QT事件等等,并较终能够利用QT知识开发出多媒体播放器。

具体课程

1、QT基础

2、QT数据库、QT网络、QT线程、QT事件以及QT多媒体

3、QT model-view 模型、QT移植、QT串口开发以及QT样式表

4、项目:多媒体播放器

第四阶段 大项目开发
主要内容

本阶段学习总结个阶段知识,通过实际大项目开发来提升技术能力,为成为一名合格的技术开发人员打下坚实的基础。

免费课程预约
每天限量名额,先到先得
二维码

扫一扫 免费领取试听课

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/news/513719/违者必究! 以上就是长沙嵌入式培训学校 小编为您整理长沙c/c++语言培训通过率排名一览的全部内容。

版权所有:培训指南(www.peixun360.com) 技术支持:培训指南网

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-0859-208