MCU
文章平均质量分 63
微控制器进阶与实战应用
内核、外设驱动
通信:IIC、SCI、SPI、CAN、LIN、FlexRay、Ethernet、ModBus
勇往直前的进击
明日复明日,明日何其多。
我生待明日,万事成蹉跎 。
展开
-
基于ASPICE的汽车电子研发管理解决方案
1、ASPICE概述Software process improvement and capability determination( SPICE) 软件过程改进和能力测定– 由国际标准化组织ISO、国际电工委员会IEC、信息技术委员会JTC1制定的国际标准ISO/IEC15504,又称SPICE。– Automotive SPICE(简称ASPICE) -汽车行业 … …• SPICE定义了9类, 48个过程– 采购过程组( ACQ)、供应过程组( SPL)– 支持过程组( SUP)、管理原创 2021-07-18 09:47:43 · 2634 阅读 · 1 评论 -
Bootloader实现升级程序
使用CAN总线来更新程序,用Bootloader实现。其实就是通过上位机把.bin/hex文件以CAN通讯的方式发送给单片机并存储在规定的Flash中。这个过程与手机端更新APP类似。以STM8单片机为例,该如何实现Bootloader呢?今天和大家分享一下。01、什么是BootloaderBootloader是一段用于更新自身应用软件并独立运行的代码,常被用于升级产品和修复产品bug。STM8单片机如果要下载hex文件的话需要通过STVP和STLINK来实现,单片机的引脚SWIM就是下原创 2021-07-25 22:48:01 · 2474 阅读 · 4 评论 -
CAN缩写
PG, Parameter Group 参数组PGN, Parameter Group Number 参数组编号PDU, Protocol Data Unit 协议数据单元PF, Protocol Data Unit Format 协议数据单元格式PS, PDU Specific 特定协议数据单元DF, Data File 数据域DP, Data Page 数据页DA, Destination Address 目标地址DLC, 数据长度码...原创 2021-11-10 16:02:57 · 1149 阅读 · 0 评论 -
CAN总线的特点及J1939协议通信原理、内容和应用
众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和网络功能,排放和其他指标达到了一定的要求。但货车和客车在这方面却远未能满足排放法规的要求。计划到2006年,北京地区的货车和客车的排放要满足欧Ⅲ标准。因此,为了满足日益严格的排放法规,载货车和客车中也必须引入计算...原创 2021-11-10 15:55:46 · 15191 阅读 · 0 评论 -
嵌入式工程师的100本专业书籍
001《大话数据结构》002《鸟哥的 linux 私房菜》003《疯狂 android 讲义》004《第一行代码》005《linux 内核设计与实现》006《驱动设计开发》007《linux 内核解密》008《unix 环境高级编程》009《linux 内核设计与实现》010《essential C++》011《嵌入式 linux》012《linux 设备驱动》013《c 语言深度解剖》014《linux 下的 c编程》015《C Primer Plu原创 2021-10-14 10:28:01 · 1148 阅读 · 0 评论 -
常见总线:IIC、IIS、SPI、UART、JTAG、CAN、SDIO、GPIO
IIC IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。I2C是OD输出的,大部分I2C都是2线的(时钟和数据),一般用来传输控制信号。IIS I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。I2S有...原创 2021-10-14 10:00:32 · 1951 阅读 · 0 评论 -
今天和大家分享几个可以接私活的网站(偏软件)(转载21ic)
关于程序员接私活,社会各界说法不一。按照作者的观点来说如果你确实急用钱,价格又合适,那就去做。如果不怎么缺钱,那就接私活之前要好好考虑。私活的钱不好挣是一个方面,更重要的是如果你把做私活的时间花在提升自己上,产生的价值就要大得多。等你提升了自己,提升了固定薪水,远比拿的这点私活的钱划算。千万不要“捡了芝麻丢了西瓜”。如果你主业上遇到了瓶颈,平时的时间比较充分,想有一些额外的收入,同时为了保持技术的熟练度,这种情况下,是可以考虑接一些私活的。对于那种投入时间巨大,回报很可怜的项目,千万不要接。下面介绍原创 2021-07-25 22:38:12 · 1962 阅读 · 0 评论 -
这些单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、
UART通用异步收发器UART口指的是一种物理接口形式(硬件)。UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。起始位:表示数据传输的开始,电平逻辑为“0” 。数据位:可能值有5、6、7、8、9,表示传输这几个bit 位数据。一般取值为8,原创 2021-07-26 22:48:31 · 12328 阅读 · 0 评论 -
嵌入式开发为什么选择C语言
从语言特点来说 C语言有出色的可移植性,能在多种不同体系结构的软/硬平台上运行。 简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。 C语言具有很高的运行效率。 高级语言中的低级语言:面向过程VS面向对象面向过程“面向过程”(Procedure Oriented)是一种以过程为中心的编程思...原创 2021-07-26 22:36:00 · 154 阅读 · 0 评论 -
LIN总线协议
LIN,Interconnect Network,适用于速度和可靠性要求不高、低成本的场合,LIN的使用场景包括车窗、天窗、座椅、门锁、空调、照明等舒适性相关的地方LIN网络主机节点/从机节点不同协议的网络需要网关相连接,所以LIN网络与CAN总线相连时,需要加入CAN-LIN网关,这个网关一般由LIN网络的主机节点充当LIN是单线总线,最大传输速率为20kbps,它采用的是一主多从的概念,就是一个LIN网络只会有一个主机,多个从机由于物理层限制,一个LIN网络最多有16个节点,那么原创 2021-07-25 22:57:39 · 15276 阅读 · 0 评论 -
单片机烧录用的hex文件,文件格式解析(转载)
含有单片机的电子产品在量产的时候会用到.hex文件或者.bin。hex是十六进制的,包含地址信息和数据信息,而bin文件是二进制的,只有数据而不包含地址。任何文件都有一定的格式规范,hex文件同样具有完整的格式规范。今天和大家分享一下,hex是如何解析的。一hex文件解析hex文件可以通过UltraEdit、Notepad++、记事本等工具打开,用Notepad++打开之后会看到如下数据内容。使用Notepad++打开后会不同含义的数据其颜色不同。每行数据都会有一个冒号开始,后面原创 2021-07-25 22:43:38 · 12756 阅读 · 0 评论 -
SPI详解
1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写,是 Motorola 公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线。2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。4、特点 (1):高速、同步、全双工、非差分、总线式 (2):主从机通信模式5、SPI电路连接 (1):S原创 2021-07-25 22:25:00 · 5208 阅读 · 1 评论 -
基于UDS的BootLoader设计——架构设计及规范
基于UDS的BootLoader设计——架构设计及规范 1 BootLoader概述 1.1 Boot Loader设计目的 1.2 Boot Loader基本功能 2 BootLoader基本需求设计 2.1 Boot Loader功能概述 2.2 ECU启动时序 2.3 软件执行安全机制设计 2.3.1 应用软件运行安全性 2.3.2 软件更新安全机制设计 3 Boo...原创 2021-07-16 23:14:34 · 1071 阅读 · 0 评论 -
CCP协议
摘 要:CCP协议是一种基于CAN总线的匹配标定协议。 该协议具有通信可靠、传输速度快、通用性好等特点。本文讨论了一种基于CCP协议的汽车ECU标定系统,并详细介绍了该系统的工作原理、数据采集机制以及实现方式。关键词:CCP协议; CAN总线;标定系统前言随着汽车电子技术的发展,电子控制单元(ECU)的标定已成为汽车电子控制装置开发的一个重要环节。大多数ECU都需要经过匹配标定的过程,原创 2017-05-12 13:39:07 · 3198 阅读 · 0 评论 -
基于交互方式的嵌入式软件开发过程
嵌入式系统软件设计的原则1、基本原则是“物尽其用”,嵌入式系统的硬件和软件都必须高效率地设计,去除冗杂 还应尽可能采用高效率的设计方法,标准化开发方法和开发流程 嵌入式系统一般由下面几个模块组成:...原创 2021-06-15 20:50:01 · 904 阅读 · 7 评论 -
双向口和准双向口有什么区别
双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。真正的双向口不需要任何预操作可直接读入读出。1:准双向一般只能用于数字输入输出,输入时为弱上拉状态(约50K上拉),端口只有两种状态:高或低。2:双向除用于数字输入输出外还可用于模拟输入输出,模拟输入时端口通过方向控制设置成为高阻输入状原创 2021-04-07 18:45:30 · 9864 阅读 · 0 评论 -
INTRINS.H的函数
在C51单片机编程中,头文件INTRINS.H的函数如下:(1)_crol_ 字符循环左移将char型变量循环向左(右)移动指定位数后返回(2)_cror_ 字符循环右移将char型变量循环向左(右)移动指定位数后返回(3)_irol_ 整数循环左移(4)_iror_ 整数循环右移(5)_lrol_ 长整数循环左移(6)_lror_ 长整数循环右移(7)_nop_ 空操作 (相当于8051 NOP 指令)1s=1000ms=1000 000us_nop_表示空循环转载 2021-02-17 22:10:20 · 1495 阅读 · 0 评论 -
51单片机开发步骤
想要从事高端嵌入式开发,首先要会用ARM与Linux,想要会用ARM与Linux,首先要会单片机,想要零基础学会单片机,就要想从51单片机开始;想要学好单片机,基础:1、C语言了解;2、微机原理与接口技术了解;想要提升开发能力,就必须要不断地实践,建议小白可以在网上(某宝)买一块51单片机开发板,自己参照课程研究研究下面我把我的经历给大家说一下,希望有志于单片机开发的童鞋能做一个参考第一步:C语言基础,建议买一本谭浩强的《C语言程序设计》,如果不想买,可以在网上找一个PDF版;微机原理与原创 2021-02-15 22:07:29 · 866 阅读 · 0 评论 -
CAN通信之PGN详解
PGN详解:原创 2017-04-06 20:49:19 · 6191 阅读 · 0 评论 -
CAN总线协议
CAN[Control(Controller)Area Network]是控制(器)局域网的简称 CAN是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。 目前CAN 总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel ,Philips等大半导体器件生产厂家的原创 2017-03-25 13:19:30 · 1622 阅读 · 0 评论 -
CAN总线为什么要有两个120Ω的终端电阻?
1 CAN总线为什么要有两个120Ω的终端电阻?2 终端电阻的作用是使阻抗连续,消除反射,那为什么只在物理上最远的两个节点加这个匹配电阻,而不是在所有的节点都加上匹配电阻?高频信号传输时,信号波长相对传输线较短,信号在传输线终端会形成反射波,干扰原信号,所以需要在传输线末端加终端电阻,使信号到达传输线末端后不反射。对于低频信号则不用CAN总线两端必须连接终端电阻才可以正常工作,终端电原创 2017-03-22 21:05:47 · 19526 阅读 · 0 评论 -
微机通信简介
现场总线是控制现场各智能装置间通信的总线,特点是协议多甚至可以自定义;主要特征是协议。串行通信是指设备间通信时数据通过一根电缆一位一位发送和接收;主要特征是数据传送方式。并行通信是指设备间通信时数据通过一根电缆一组一组发送和接收;主要特征是数据传送方式。以太网通信是指各智能装置间通信时遵照一个统一的协议,特点是单一协议;主要特征是协议。原创 2017-03-22 20:52:43 · 804 阅读 · 0 评论 -
CAN通信报文中的生命信号
生命信号:汽车上比较重要的CAN节点,需要加生命信号;一般为从0开始每次加1,0、1、2…FF,然后循环。作用是表征CAN节点VCU没有出现故障等,使其他节点清楚的知道接收到的CAN消息是可靠的。如果生命信号每次加一,则可以认为该节点正常工作;如果不是,则该节点发出的消息是不可靠的。原创 2017-03-22 20:46:49 · 4067 阅读 · 1 评论 -
“使能”信号
使能是芯片的一个输入引脚,或者电路的一个输入端口,只有该引脚激活,例如置于高电平时,整个模块才能正常工作。负责控制信号的输入和输出叫做使能,是一个动词,英文‘Enable’。英文Enable,前缀en-就是使的意思,able就是能够。合起来就是使能。使能通俗点说就是一个“允许”信号,进给使能也就是允许进给的信号,也就是说当进给使能信号有效的时候电机才能转动。原创 2017-03-22 20:44:22 · 13349 阅读 · 0 评论 -
微机原理与接口技术实战(持续更新中)
计算机内存是以字节为单位的存储空间,内存的每一个字节都有一个唯一的编号,即地址凡存放在内存中的程序和数据都有一个地址。指针变量是用来存放地址的,不能给指针变量附常数值。原创 2017-03-17 16:24:39 · 423 阅读 · 0 评论 -
微机之NOP
NOP定义在库函数intrins.h中,表示空循环一个机器指令的时间,12M中表示1us;6M中表示2us;24M中表示0.5us(微妙)1S=1000ms=1000 000us;原创 2017-03-17 15:44:04 · 1199 阅读 · 0 评论 -
通信中波特率与比特率
波特率:单片机或计算机在串口通信时的速率。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。又比如每秒钟传送240个二进制位,这时的波特率为240Bd,比特率也是240bps。(但是一般调制速率大于波特率,比如曼彻斯原创 2017-03-16 21:06:07 · 1780 阅读 · 0 评论 -
CodeWarrior注意事项(持续更新中)
警告数据可能丢失:1.移位或取反,例如:flg = (~(0xFFFF2.丢失精度,例如:把unsigned int类型的值赋给unsigned char;3.结果溢出,例如把一个乘除结果为long型附给了int型;原创 2017-03-17 15:36:24 · 3306 阅读 · 0 评论