汽车嵌入式软件开发(汽车嵌入式软件开发前景)

软件开发 911
今天给各位分享汽车嵌入式软件开发的知识,其中也会对汽车嵌入式软件开发前景进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、嵌入式硬件开发需要哪些软件开发?

今天给各位分享汽车嵌入式软件开发的知识,其中也会对汽车嵌入式软件开发前景进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

嵌入式硬件开发需要哪些软件开发?

我主要来说下硬件开发以及开发的步骤有哪些

什么是嵌入式?

度娘给出的答案是:

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。

事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

很多人对此还是不了解,那么,如何理解“嵌入式”呢?

从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,早期的基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,而目前很多控制器芯片早已集成到CPU内部,例如早期PC机有显卡,而现在多数嵌入式处理器都带有LCD控制器,某种意义上就相当于显卡。

从软件上,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”。

综上所述,嵌入式是一个综合性的学科。

嵌入式硬件开发流程

图1  硬件开发流程

基于嵌入式的开发,基本上分为四层:硬件层、驱动层、操作系统层和应用层。

其中应用层的开发最为简单,也是需求量最大的,也是公司里利润最高的部分。操作系统层的开发主要是移植相关,很少有人自己写操作系统。不过华为的鸿蒙系统,还是很值得我们期待的。驱动层的开发比较难。需要能看懂电路图还要对操作系统内核十分的精通。

最后,说说硬件开发,它是整个嵌入式系统的根本,是基础。嵌入式硬件开发在很大程度上决定了嵌入式产品的性能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。

pcie可以一对多

pcie可以1对多的连接,需要对接口连接中的索引值进行设定,如下图,需要注意的是,索引值的设置需要与上面的“pcie_num”对应,从0开始,一直到“pcie_num” - 1,且最大不超过64.

▲图2-5 linker连接EP设备接口

03.PCIE的BDF

每个PCIE设备在系统总线上都有自己的标识符,这个标识符就是BDF(Bus,Device,Function),PCIE的配置软件(即Root的应用层,一般是PC)应当有能力识别整个PCIE总线系统的拓扑逻辑,以及其中的每一条总线(Bus),每一个设备(Device)和每一项功能(Function)。

在BDF中,Bus Number占用8位,Device Number占用5位,Function Number占用3位。显然,PCIe总线最多支持256个子总线,每个子总线最多支持32个设备,每个设备最多支持8个功能,如下图所示:

▲图3-1 BDF空间分配

需要注意的是,每Bus0总是分配给RC,且每个设备必须要有功能0(Fun0),其他的7个功能(Fun1~Fun7)都是可选的。

SkyEye仿真实现PCIE设备的BAR地址设置则是在PCIE设备建模时对其配置信息结构体中对BDF进行配置。

▲图3-2 SkyEye仿真配置BDF

04.PCIE的配置空间

PCIE有三个相互独立的物理地址空间:设备存储器地址空间、I/O地址空间和配置空间。配置空间是PCIE所特有的一个物理空间。由于PCIE支持设备即插即用,所以PCIE设备不占用固定的内存地址空间或I/O地址空间,而是通过配置空间来实现地址映射的。

系统加电时,BIOS检测PCIE总线,确定所有连接在PCIE总线上的设备以及它们的配置要求,并进行系统配置。所以,所有的PCIE设备必须实现配置空间,从而能够实现参数的自动配置,实现真正的即插即用。

PCI总线规范定义的配置空间总长度为256个字节,配置信息按一定的顺序和大小依次存放。前64个字节的配置空间称为配置头,一般有两种,Type0和Type1,分别对应桥设备和终端设备。配置头的主要功能是用来识别设备、定义主机访问PCI卡的方式(I/O访问或者存储器访问,还有中断信息),Type0如图4-1所示,Type1如图4-2所示。

▲图4-1 终端设备Type0配置头

▲图4-2 桥设备Type1配置头

其中,配置头中的重要寄存器意义如下:

Vendor ID:厂商ID。知名的设备厂商的ID。FFFFh是一个非法厂商ID,可它来判断PCI设备是否存在。

Device ID:设备ID。某厂商生产的设备的ID。操作系统就是凭着 Vendor ID和Device ID 找到对应驱动程序的。

Class Code:类代码。共三字节,分别是类代码、子类代码、编程接口。类代码不仅用于区分设备类型,还是编程接口的规范,这就是为什么会有通用驱动程序。

IRQ Line:IRQ编号。PC机以前是靠两片8259芯片来管理16个硬件中断。现在为了支持对称多处理器,有了APIC(高级可编程中断控制器),它支持管理24个中断。

IRQ Pin:中断引脚。PCI有4个中断引脚,该寄存器表明该设备连接的是哪个引脚。

Status:设备状态字,具体每个BIT的意义见下图4-3

Command:设备状态字,具体含义见图4-4

Base Address Registers:决定PCI/PCIE设备空间映射到系统空间具体位置的寄存器,映射方式有两种,分别是IO和Memory映射,具体解析见图4-5

▲图4-3 status解析图

▲command解析图

▲图4-5 BAR解析图

所有的PCIE终端设备在系统初始化后会在得到对应的配置空间信息,在SkyEye平台仿真也是如此。其中具体的配置信息需要手动设置,参考下图4-6。

一般需要配置的主要有设备对象指针obj,BDF,vendor_id和device_id,以及内存映射地址BAR和其映射长度,可以按照需要配置多个BAR空间。其余一些配置寄存器也可以手动设置,遵循Type0的配置空间格式,具体的配置空间信息可参考:

《skyeye_dev_bus_intf.h》

需要注意地是,在设置配置空间信息的时候,必须在new阶段,这主要是由skyeye平台初始化顺序决定的。

▲图4-6 PCIE终端设备初始化配置空间

除去上面提到的64B空间外的其余的192个字节称为本地配置空间,主要定义卡上局部总线的特性、本地空间基地址及范围等。而PCIE总线则继承了PCI总线的前256字节外,即0x00~0xFF,还额外扩充到了4K的配置空间,即0x00~0xFFF,其扩展形式是通过一种称为Capability的寄存器块来完成的,下图是具体的布局。

▲图4-6 PCIE配置空间扩展结构图

在原来的配置空间中,有一个寄存器指定了第一个Capability的位置,而第一个Capability又指定下一个Capability,构成了一串Capability,具体如下图所示,由于Capability的作用各不相同,且目前SkyEye关于此功能设置还未完善,这里不再赘述。

▲图4-7 Capability寄存器关系图

05.PCIE的建模仿真

5.1注册接口

对PCIE终端设备进行建模,设备需要注册两个接口,分别是memory_space和pcie_config_intf,其中pcie_config_intf接口声明在文件《skyeye_dev_bus_intf.h》中,主要用来传送其配置信息,如下所示:

▲图5-1 PCIE终端设备接口注册

注册接口实现后,需要对配置空间信息进行设置,具体操作参考第四节的内容。

5.2 BAR内存空间读写

在上一节设置完BAR的地址信息后,就需要实现不同的BAR地址映射功能,而我们主要通过memory_space接口实现,参考如下结构,读写同理。

▲图5-2 PCIE终端设备BAR地址映射接口

需要注意的是,PCIE终端设备中的memory_space接口中的第二个参数addr代表实际的映射地址,与以往的代表地址偏移不同。

打开CSDN APP,看更多技术内容

SkyEye:针对飞行模拟器的仿真解决方案

飞行员训练、飞机的设计和开发、对飞机特性和控制处理质量管理的研究都离不开飞行模拟器的支持。只有对飞机模拟器进行仿真,才能实现D等级的全功能飞行模拟,高安全、高可靠的天目全数字实时仿真软件SkyEye可提供完整解决方案。

继续访问

知识丨软件定义汽车的价值

通过软硬件分层解耦架构,汽车开发将进入到以软件为核心的迭代开发新模式——软硬件不仅可以同步进行平台化开发,还可保持差异化上市和持续升级迭代,从而大大缩短产品的研发周期。

继续访问

SkyEye助力飞控软件Debug

在嵌入式系统飞速发展的飞行控制领域,软硬件紧耦合的情况使得只有快速定位软件问题并找到问题出现的根本原因,才能最大程度地降低调试成本,缩短开发周期。

继续访问

软件:汽车的最新驱动

随着汽车产业“新四化”的加速推动,智能汽车已成为各国科技发展战略重点,在社会数字化转型的浪潮下逐渐形成跨领域协作、多技术融合的汽车产业新赛道,软件定义汽车已成为行业趋势与共识。

继续访问

嵌入式软件开发为什么需要DevOps?

为什么嵌入式软件开发对DevOps的接受度越来越高?点击文章,一探究竟。

继续访问

SkyEye携手DigiThread,共同助力卫星领域数字化进程

随着卫星的技术进步及其应用领域的不断拓展,卫星总体设计及应用仿真迫切需要先进仿真工具的强有力支持。

继续访问

基于模型的设计(MBD)在汽车ECU软件开发中的实践

基于模型的设计(MBD)是整车厂在当前激烈的竞争环境下的最优选,但如何选择一套应用MBD、以模型为核心,且能处理从需求、设计、代码生成到测试的开发工具?点击原文了解详情。

继续访问

汽车领域CI/CD

CI/CD在传统IT行业早已风靡多时,但汽车行业相比于传统IT行业有一定差异性。点击原文了解详情。

继续访问

知识丨软件定义汽车下的整车开发

新一轮科技革命和产业变革方兴未艾,作为新技术集成应用最佳载体之一的汽车正加速向智能化转型,智能汽车已成为全球汽车产业发展的战略方向。整车电子系统功能复杂度呈指数级上升,软件占比持续增大。

继续访问

汽车领域:自动化编译框架

如何提供自动化编译框架用于解决硬件平台的切换以及屏蔽硬件差异,以更好地实现应用的快速开发和部署,是软件研发的一个重要课题。

继续访问

基于ModelCoder的汽车悬挂系统建模

悬挂系统主要功能为支持车身、改善乘坐感觉。悬挂系统综合多种作用力,决定着汽车行驶过程的稳定性、舒适性和安全性,是整车厂需要考量的重要汽车部件之一。

继续访问

汽车领域:双态敏捷开发模型

“软件定义汽车”的时代,软件在整车制造中的重要性日渐凸显。但不同于其他行业的软件开发,汽车行业有自己独特的软件开发要求。

继续访问

嵌入式软件测试的10条秘诀

点击链接,了解嵌入式软件测试10条秘诀。

继续访问

浅议飞机状态监控

安全问题一贯是全球航空业的重中之重,随着航空装备的日益发展,飞机性能不断提高、功能不断完善,飞机系统结构愈加复杂,与之对应的维护保障成本也日益提升,如何解决这一问题依然是是航空从业者需要研究的课题。

继续访问

第三届中国云计算基础架构开发者大会成功举办!

2022年11月6日,第三届中国云计算基础架构开发者大会在浙江杭州成功举办!

继续访问

知识丨浅谈轨道交通信号系统的测试类型与测试方法

本文对测试过程进行简单的介绍和分类,探讨不同的测试方法和不同测试阶段的结合,并对未来测试发展进行初步讨论。

继续访问

汽车领域:基础软件验证平台

汽车电子的高速发展决定了基础软件所面临的要求将会更加严格,其要求会覆盖软件的安全性、稳定性、可扩展性等方方面面。为了提高软件质量,降低软件应用风险,构建高安全、高可靠性、高效率实施的基础软件验证平台则是必不可少的一环。

继续访问

35位大咖3.3万人观看|第17届CLK大会圆满落幕,精彩回放已上线

分享回放链接和演讲课件,欢迎点击观看。

继续访问

电动汽车安全概述

在虚拟测试环境中任意注入故障,可随时暂停或反向执行,在该环境下缺陷可稳定复现。

继续访问

什么是“软件定义汽车”

“软件定义汽车”即软件将深度参与到汽车的定义、开发、验证、销售、服务等过程中,并不断改变和优化各个过程,是汽车从基于硬件的产品向软件为中心的电子设备不断转变的结果。

继续访问

pcie通信

嵌入式在汽车中的应用

我是在国外做嵌入式汽车电子开发【ECU】开发的,2年前才如此行,不是专家,汽车的引擎,变速装置,车体,电动车窗都是由单片机控制的,单片机之间的通信有CAN FLexRay Lin等主流的方式。汽车中嵌入式的软件开发现在已经占据了50%,将来会更加多。复杂的软件处理需要有经验的软件管理工程师,你可以学学软件管理等,另外我国用市场换技术没有成功,这里的技术指的就是嵌入式系统,汽车的电子控制系统。现在汽车很智能化,这些都得益于单片机的自动控制。

嵌入式软件开发前景待遇如何?薪资高吗?

嵌入式软件工程师应届生薪水在5000到6000左右。

工作经验在1-2年的嵌入式驱动工程师薪水,基本会在6000-9000元的范围,而随着工作年限的增加,薪资水平也会有较明显的提高。3年工作经验的1-2万,基本不成问题。

嵌入式开发工程师,从事领域很宽泛,特别是工业控制、消费电子与通信设备三大领域,因为就业面很大,所以人才需求也大。现在智能硬件也比较火,这方面的发展也会大大拓展嵌入式工程师的就业机会。

汽车嵌入式软件开发的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于汽车嵌入式软件开发前景、汽车嵌入式软件开发的信息别忘了在本站进行查找喔。

扫码二维码