1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 32单片机 硬件电路 计算机 细碎知识【7000字】【来源工作日记】【原创】

32单片机 硬件电路 计算机 细碎知识【7000字】【来源工作日记】【原创】

时间:2024-03-14 14:46:45

相关推荐

32单片机 硬件电路 计算机 细碎知识【7000字】【来源工作日记】【原创】

文章目录

电感,Keil5兼容C51,C语言宏替换AC7811单片机CAN通信协议,比特率bpsCAN通信协议标准,标准数据帧,扩展数据帧,0u与0ulECU,FLASH,RAMADC通道规则ADC,DMAJTAG与JINK调试计算机知识 C:\Users\Administrator\Desktop软件安装汽车LIN总线介绍,MMIBDM车身域控制Stateflow线上培训Source insight4建立工程,SVN分支VGA,DVI,HDMI区别

电感,Keil5兼容C51,C语言宏替换

L1电感的作用原理?就是隔交通直(我一开始隔直通交了哈哈哈)

MPQ4420是降压模块

原理图中tp符号?是测试点,自己使用

TJA1027T用来进行收发

JTAG+SWD==J-link==keil中debug要设置jtag调试

王凯说,原理图中红色部分,不参与电路板,只是起到标注作用,易于观看

keil5-MDK版与Keil5-c51是两个安装包,其中想要兼容两者,都安装在一个文件路径即可

先安装好MDK之后,破解好之后,再安装keil5-c51版本,注意安装过程中(因为两个软件包安装在同一个文件下面了),提示你点文件覆盖还是跳过,此时一定要点skip,亲测点全部覆盖,失败了好几次,第一天上班因为这点安装好几次都失败

加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换。

比如以下情况:

#define COM(A,B) (A)*(B)那么COM(6+5,3)它会换成这样: (6+5)*(3)

显然这是和COM宏的意图一致的,但是如是去掉了定义中括号,即写成这样:

#define COM(A,B) A*B那么COM(6+5,3)它就会换成这样: 6+5*3

这样显然就和宏的意图不符合了。

只有处在jlink调试时才可以打断点

AC7811单片机

AC781单片机有68个IO口(boot也当做IO使用),16条外部中断线,对应于7个外部中断向量==7个外部中断函数,每个引脚都支持引脚复用功能

准备:①利用gpio子例程中1的定时器2中断1ms进入一次,来进行判定5s(这个5s例程使用的是普通延时函数)

汽车靠背原理图中BZX84-C39是稳压二极管

初次接触AC7811单片机,用定时器实现了控制两个电机正反转(正转10s,反转50s),完成了王凯让我实现的小功能,并且学习了开发板中GPIO的代码例程,并且初次接触j-flash,并用其下载程序

学习使用source insight软件,建立工程,add all也行,add tree也行,具体教程已经收藏在博客里面,file name可以不用写直接close即可

CAN通信协议,比特率bps

安装S32-RAM软件,并初步学习使用其软件,can学习(王凯发给我的can资料)

Migrate迁移

Can通讯,半双工,异步通信,无时钟信号,can控制器通过两根线上的电位差来判断总线电平,can通讯不对节点进行地址编码,只是对数据内容进行编码

汽车数据采集-TTL电平->(cpu+cpu内部集成的CAN控制器)->can收发器->差分信号can总线->差分信号->can收发器->TTL电平->can控制器->完成汽车功能==明白了吗?

Can物理层=环路模式(也就是闭环总线,两头要有匹配电阻,这种比较常用)+开环模式(开环总线)

Can通信没有时序信号,所以和串口通信一样,必须事先统一好发送和接收的的波特率

LAN=local area network=局域网

刘洋B站视频

Can通讯协议标准分为高速通讯标准和低速通讯标准(刚好这个低速和高速涵盖了一台汽车里面的所有通讯),can通讯只需要两根线

Can通讯以5种类型帧来进行通信,一帧=7个段组=帧起始,仲裁段,控制段,数据段,crc段,ack段,帧结束==一个标准数据帧最多可以发送108位

位速率=每秒发送的位数=一位由四段构成,每一位由若干个tq构成

bps(bits per second)是数据传输速率的常用单位,意思是比特率、比特/秒、位/秒、每秒传的位数。 比特(bit)是信息技术中的最小单位。 文件大小(例如文本或图像文件)通常以字节(Byte)为单位。 一字节对应八比特。 在数据传输中,数据通常是串行传输的,即一个比特接一个比特地传输。 数据速率的单位是比特每秒(bps),含义是每秒串行通过的位数。 Bps (Bytes per second), 即字节每秒,因为一字节对应八比特,所以1 Bps = 8bps。 比特率是指每秒传送的比特 (bit)数。 单位为 bps (Bit Per Second),比特率越高,传送数据速度越快。

今天给六个板子烧录昨天王凯让我写好的程序,初次使用了探针,使用j-flash工具烧录的

CAN通信协议标准,标准数据帧,扩展数据帧,0u与0ul

Can=串行通信协议=ISO(国际标准化组织)定义的一个协议标准

Lan=局域网=内网=私网

多个内网=多个子网之间通信涉及到,网关的使用

ID号决定优先级,无其它特殊意义,can通讯没有地址概念,因此理论上总线可挂接无数节点

Iso定义的这套标准=硬件控制(1物理层=线路连接,2数据链路层=数据帧,寄存器啥的)+软件控制(3网络层,4传输层,5会话层,6表示层,7应用层)

数据链路层=MAC层+LLC层=帧化-仲裁-应答-错误的检测和报告

Iso仅仅对硬件控制层进行了标准化,在物理层规范了高速(环路模式)和低速两种通信(开环模式),两种模式的驱动ic不同=can控制器里面的电平转换芯片不同

数据传输==一帧一帧数据传输==电影也是一帧图片传输形成了画面,这个帧分为五种帧==数据帧,遥控帧,错误帧,过载帧,帧间隔一帧=7个段组=帧起始,仲裁段,控制段,数据段,crc段,ack段,帧结束==一个标准数据帧最多可以发送108位(只有数据段的位数是不固定的0-64位)

数据帧分为标准数据帧和扩展数据帧,扩展帧只是ID号位数变多了,其它差别不大,因此扩展数据帧最多发送位数>108

标准数据帧格式=sof+id+rtr+ide+r0+dlc+data+crc+crc界定符+ack+ack界定符+eof

扩展格式=不写了

其余四种帧的格式也不写了

标准数据帧格式=sof(帧起始,1位,总线显隐性由它决定,显性0代表开始)+id(仲裁段,11位,决定优先级,禁止id=1111111XXXX)+rtr(没说,1位,只能是显性)+ide(1位,没说)+r0(1位,保留位必须显性0)+dlc(数据长度码,4位,1111代表8个字节,刚好是64位)+data(0-64位)+crc(15位)+crc界定符(1位)+ack(1位)+ack界定符(1位)+eof(7位,必须全是隐性1111111)

仲裁的过程,也很简单,不用说了,具体看can入门pdf

小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况,如果没接触到C语言常量后缀的话可能就有点疑惑~

其中的u为unsigned,l为long,f为float

C语言中常量的默情况:整形默认为有符号int;浮点型默认为double;如果整形常量大小超出int,默认自然就为long int;如果需要无符号整形常量的话就可以在常量后面加u或是U,如0u或是0U,同理可以在常量后面加ul或UL表示无符号长整形常量;而浮点型常量后缀只有f或F,l或L,没有u或U,因为浮点数一般都为有符号

安装can驱动,和can调试软件

ECU,FLASH,RAM

Ecu=Electronic Control Unit=汽车的电子控制单元

学习CAN分析仪使用手册(CANalyst-Ⅱ)

Flash存储代码,arm存储数据(变量的值与地址,也包括寄存器地址与寄存器存储的值),比如F4中的4GRAM中分为八个块,每块512MB空间,比如某一块空间里面给存储器分配地址,这个叫做“映射”,寄存器中又细分小寄存器,在地址里面又分配地址,叫做“重映射”

ADC通道规则

不想看到keil中.c文件下面的.h文件,或者说多出来个.h文件,在魔术棒旁边的选项里面将Files中相应的.h文件删除即可

通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。规则通道组的转换好比是程序的正常执行,而注入通道组的转换则好比是程序正常执行之外的一个中断处理程序。

GPIO_SetFunc();函数,第一个参数:PA-PE,第二个参数:7811单片机参考手册P236中有一个表格:0-3,0代表正常原理图管脚,123分别代表复用为相应的功能(看那个表格即可)

ADC_init()函数里面,tempAdcConfig数组用来配置ADC mode:mode1-8

tempAdcTrigSource数组用来配置触发方式,第一个成员是规则,第二个成员是注入,0是关闭默认内部触发,1是打开,比如10代表规则组外部触发

ADC中18个通道,一个温度一个电压,16个外部通道供我们用

DMA有12个通道,不同通道用于不用的外设,ADC专用DMA通道1

ADC,DMA

写写昨天的日志,建立工程时,默认是Target1,然后在RTE文件夹下面会出现这个名字,假如你修改为其它名字,则Target1不消失,会再次出现你修改名字的文件夹

还有就是,AC7811单片机的配置文件,在manage run里面ATC Drivers里面,自己添加即可,不让在文件夹下面你找不到,不像32都在文件夹里面

我是按照正点原子的代码风格来建文件夹的,包括头文件风格

技小新:外设是adc,外设基地址就是ADC地址,内存=存储基地址就是数组名,DMA初始化中必须加入一个数组名=该数组地址,用的是个二维数字,但是跟几维无关系,三维也行,二维中的第一个参数是滤波采集次数,第二个参数是通道号,因为DMA是由通道的(顺序规则转换),通道是1

正点原子:DMA中用的是一个自写的函数,数组用的是一维数组,外设基地址是串口地址,内存=存储基地址是数组名,通道是4

小蚂蚁:猜测:数组中存储的都是同一个值?这里我还是没有查到,根据众拳单片机的程序可以看到,数组存储的都是同一个值,接收到直接滤波即可

eflash=片内flash=默认

JTAG与JINK调试

spm=系统电源管理

nmi=不可屏蔽中断

待机模式是最省电的模式,处于这种状态下,只有rtc时钟中断和spm中断可以唤醒

firmware固件

记录一下问题:(下载电机控制板)

1,j-link驱动有,电脑也识别到串口COM3,打开keil中settings弹出蓝色j-link界面,只要点yes软件就卡死退出,点no没事(翻译是,read protected device detected,读保护,点yes就是尝试擦除程序,但是只要点yes软件就卡死退出)

2,点no没事之后,会进入settings里面,但是JTAG Device Chain识别不到(IDCODE区域是空白),但是左边的jlink型号和设备号可以识别到

3,然后进入jlink软件,发现可以连接成功,但是不可以production programming(按钮是灰色)

4,CSDN中关于JTAG Device Chain识别不到有很多方式,只有一种方式,我尝试成功,我点击进入jlink软件,点击芯片擦除,此时是成功的,于是production programming仍然是灰色,但是此时我尝试点击read back之后,发现production programming变黑色了(也许跟这个没有关系),此时我再次重新下载程序成功,程序正常运行,换个板子也可以如此下载程序,但是此时keil中JTAG Device Chain仍然识别不到

计算机知识 C:\Users\Administrator\Desktop

C:\Users\Administrator\Desktop\ Win10系统中C盘的Users==用户,Administrator==你自己的电脑用户名==我的叫14733,Desktop==桌面,这三个英文只是代称,实际中都是别名,比如我的就是c\用户\14733\桌面,appdata这个文件夹和桌面在同一目录下,默认是隐藏的,查看中选上“隐藏的项目”可查看

软件安装

Uds协议

Svn使用教程

Simulink模型开发

低功耗产品

Svn安装

Notepad++安装

Beyond Compare4安装

Matlab a安装

SpcStudio安装

IAR for RAM安装

安装XYplorer软件

BDM==Body Control Module,车身控制模块

安装CareUEyes软件

安装geek软件(卸载软件,可以查询并删除软件对应的注册表信息)

安装win64环境下的ocx控件

汽车LIN总线介绍,MMI

汽车LIN总线,配合CAN总线使用,它速率要慢,mcu通过串口引出一条线,通过lin驱动芯片,这条线上挂载多个从机,mcu作为主机。实现汽车中的分布式电子控制,为CAN提供辅助功能,和can一样,不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点,通常一个LIN 网络上节点数目小于12 个,LIN总线的网络节点数不能超过16,否则,节点增加将会减少网络阻抗,导致环境条件变差。每增加一个节点,就会降低3%的阻抗。

汽车车身网络,通信速率越低抗干扰能力越强。在一些比如车身电子配件的地方(如车窗、后视镜、大灯、车锁等),我们不需要报文像CAN总线上传输的那样“高速”!各大厂商一拍脑门就研究了这个LIN总线!

LIN总线采用的是单线传输形式,应用了单主机多从机的概念,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点。

MMI(Multi Media Interface)系统是“奥迪多媒体交互系统”的英文缩写

BDM车身域控制

小cpu是s9s12g64飞思卡尔单片机,大cpu是ST公司的spc560单片机

micro power中vcc通过0电阻分为hv,bv,adc给大cpu供电

slave power中V5与v4并联直接分为s-VBAT_D,然后vbat_switch和vbat-wake两个按键控制它分给VBAT_SW_S(开关供电),这个应该是用于低功耗,关掉开关省电,s-VBAT_D再降成s-vcc给can芯片供电和lin芯片供电

slave cpu中,s-vcc给小cpu供电

connector中是所有信号输入输出口,j1-j5

lf antenna中,v5给天线芯片供电

slave output中,PDU(Power Distribution Unit,电源分配单元),ESCL全称电子转向柱锁(Electronic Steering Column Lock)是车辆防盗系统的一部分,用于无钥匙进入无钥匙启动系统中锁止和解锁方向盘

slave input中都是端口,con来自connector,in直接接到小cpu口

mux中都是vcc供电,M74HC4851是具有注入电流保护的单路8通道模拟复用器/解复用器,一个芯片带一个mux-1-an,mux-a-an直接连到大cpu,一共12个mux-1—mux-12

flash空的

win-ap不知道

relay3是车窗电机控制,vbat-d供芯片,v-win-l供电机,控制端是小cpu

relay2是后视镜电机芯片,vbat-d供芯片,v-lock供电机,v-wiper供电机,控制端大cpu

relay1是中控锁电机,vbat-d供芯片,v-lock供电机,控制端是大cpu

bjt3是,led驱动芯片,是三色灯,vbat-d供电芯片,大cpu控制

bjt2与1都是三色灯,控制端直连大cpu

bjt1是灯,大cpu控制

lsd2是继电器驱动,vbat-d和vcc供电芯片,控制端是大cpu(喇叭,雨刮,加油口盖等)

lsd1是灯,大cpu控制

hsd1234,好多芯片,vcc和v1供电,好多灯,也是彩灯,芯片之间spi通信,控制端大cpu

ic-reset没看懂,反正是大cpu控制

bus没看懂,和上面ic-reset结合使用,vcc和vbat-d供电

power中,v1234并联构成了vbat-d,vbat-d和vcc给can驱动芯片uja1078供电,剩下还有三个switch开关,应该是用于睡眠或者低功耗,vbat-wu和vbat-sw控制是所有的信号输入开关,即打开它,信号输入才有效

input1-8都是输入信号,左边con是connect中的输入口,右边in都是连到mux中的M74HC4851芯片,然后经芯片之后直连大cpu

Stateflow线上培训

stateflow线上培训

建立一个模型,输入电压小于9v或者大于16v输出电压故障状态

状态机,两种状态,电压正常和故障

chart中ctrl+h快捷键

chart中tab快捷键,自动补完

[]在状态机中是条件判断

优化1:输入0-255V修改为0.0-25.5v(增大颗粒度)

优化2:考虑到汽车电子中电压状态不稳定,90与160在条件判断中,error改为85/165,idle中改为95/155,

优化3:大于160区间为高压故障,小于85区间为低压故障(变成了两种故障)

优化4:软件消抖=延时消抖

优化5:状态机的转换中,两种方案中,希望第一种方案,右边的如果状态数量过多会引起复杂(右边的输出放在了跳转条件里)

复习:

stateflow

实际电压精度

{}输出

[]条件判断

王凯uds诊断线上培训

否定响应码==相当于一种信息提示,用于查询,告诉你否定的原因

Source insight4建立工程,SVN分支

branches分支中建立WFF分支,source insight4不可以跨盘符建立文件联系,在WFF分支里面将trunk中的所有文件(也就是NV工程)

复制放在WFF里面,再在source insight4里面建立NV工程,NV工程中源工程文件就是WFF里面的复制的trunk工程,NV工程目录放在WFF

目录下面,不可以再进一步放入SI中,因为SI会跟随WFF上传到公司svn中(何志维说的,暂时没考证)0131注:确实是一块被上传了

VGA,DVI,HDMI区别

VGA,模拟信号,视频信号,显示模糊

DVI,数字信号,视频信号,显示高清

hdmi,数字信号,音频信号,视频信号,显示高清

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。