工程实践经验
硬件
接口
USB
特性 | 数据 | 适用性说明 |
---|---|---|
热插拔等级 | 最高 | 不仅热插拔,还可断点续传 |
速度 | 高低 | 最高可传输视频 |
长度 | 2m | 适合仪器内部局域链接 |
固定 | 不可拖动 | 移动式部件不可采用此接口 |
UART/USART
特性 | 数据 | 适用性说明 |
---|---|---|
热插拔等级 | 低 | 没有热插拔设计,但是从硬件角度,可适当带电插拔,但不推荐 |
速度 | 中 | 串口传输速率越来越高,由于电平采样(8倍、16倍)的需要,注定不会太高。作为控制协议够用,但作为复杂的数据传输有点不足 |
长度 | 1.2m | 适合板级互联,小型仪器内部局域链接(中大型慎重) |
固定 | 不可拖动 | 移动式部件不推荐使用此端口 |
RS232
RS485
CAN
网口
SPI
IIC
HDMI
PCI
EMC整改
EMC测试项
EMC测试项目
*emc实验*-> □GB 4824 □GB/T17626 □YY 0505 □GB 18268 □GJB151B □GB/T24338 & & & & & *汽车电子* -> □GB 18655 □ISO 7637 | 民标项目 | 军标项目 |
□传导发射 | CE101 | |
□辐射发射 | CE102 | |
□静电放电 | CE107 | |
□辐射抗扰度 | CS101 | |
□快速脉冲群 | CS102 | |
□雷击浪涌 | CS106 | |
□传导抗扰度 | CS109 | |
□工频磁场 | CS112 | |
□跌落与中断 | CS114 | |
□脉冲磁场 | CS115 | |
□振荡波 | CS116 | |
□谐波失真 | RE101 | |
□闪烁 | RE102 | |
□冲击电压 | RS101 | |
□脉冲(P1-P5) | RS103 | |
*电气安全* □GB 9706.1 □GB 4793.1 | □接地电阻 | □漏电流 |
□介质耐压 | □绝缘强度 | |
□剩余电压 | ||
□环境试验 □力学试验 □生物化学 | □高低温 | □运输试验 |
□交变湿热 | □盐雾试验 | |
□振动试验 | □霉菌试验 | |
□碰撞试验 | □紫外老化 |
EN/IEC61000检测标准介绍
EMC测试项目:
辐射骚扰Radiated Emission (>1GHz)
辐射骚扰Radiated Emission (<1GHz)
传导骚扰 Conducted Emission
功率辐射 Power Clamp
谐波电流 Harmonics IEC61000-3-2
电压波动 Flick IEC61000-3-3
静电放电测试 ESD Test IEC61000-4-2
浪涌测试 Surge Test IEC61000-4-5
电压跌落测试Voltage Dips Test IEC61000-4-11
电快速脉冲测试 EFT Test IEC61000-4-4
辐射抗扰测试 R/S Test IEC61000-4-3
传导抗扰测试 C/S Test IEC61000-4-6
工频磁场测试 M/S test IEC61000-4-8
谐间波测试Harmonics&InterHarmonics IEC61000-4-13
EMS测试项目
- 静电测试(IEC61000-4-2)主要考虑的参数
静电发生器范围:±0.2KV-±30KV; - 辐射抗干扰度测试(IEC61000-4-3)主要考虑的参数
- 快速脉冲群测试(IEC61000-4-4)主要考虑的参数
测试频率:5KHz/100KHz
测试电压:4…0KVmax - 雷击浪涌测试(IEC61000-4-5)主要考虑的参数
测试样品电流:大输入电流16Amax;
大测试电压:±6.4KV
测试波形 :1.2/50us - 传导抗干扰测试(IEC61000-4-6)主要考虑的参数
- 工频磁场测试(IEC61000-4-8)主要考虑的参数
线圈中心磁场强度:265 A/m; - 电压跌落测试(IEC61000-4-11)主要考虑的参数
测试电压:只能测试AC 220-240输入产品。
EMC基础
EMC基础-概念&原理
-
快速瞬变脉冲群
作用于电源输入端的极短窄带脉冲,因此有密集的高频各次谐波。又造成共模干扰、差模干扰。单独作用于L和PE 就是差模的(差模干扰作用于端口之间),作用于L和N之间就是共模的(共模干扰作用于端口和地之间);而,差模干扰和共模干扰的防护电压值,在同一等级也不同,比如三级标准,共模的是2KV,差模是1KV。脉冲群干扰,也通过传导性耦合、电容电感耦合、电磁辐射耦合三条作用于EUT。并且脉冲群测试,都是有测试频率的(5kHZ),这样,以电容方式简单积分滤波就行不通了,会逐渐积累,直至饱和。其中,辐射干扰,又分为天线耦合和电磁场对闭合导线回路的感应耦合,采取的措施也仍然是电磁屏蔽、拉开距离、减少环路、和退耦。
在三级标准下接50Ω负载时,该波形具有如下的运行特性:最大能量为4MJ/脉冲,以正、负极性输出,动态源阻抗为50Ω,脉冲重复率5kHz,单脉冲上升时间为5(1±30%)ns,脉冲持续时间为50(1±30%)ns,脉冲群持续时间为15(1+20%)ms,脉冲群周期为300(1±20%)ms。由于两脉冲间隔远大于脉宽,所以将单脉冲进行周期延拓,由于满足采样定理条件,可以进行正弦序列的傅里叶展开
f ( t ) = A 0 / 2 + ∑ n = 1 ∞ A n s i n ( n w t + ψ n ) f(t) = A_0/2+\sum_{n =1}^{∞}A_nsin(nwt+\psi_n) f(t)=A0/2+n=1∑∞Ansin(nwt+ψn)
式中 A 0 / 2 A_0/2 A0/2 --直流分量
A n A_n An–各次谐波分量
w w w–几波的角速度
ψ n \psi_n ψn–各次谐波初相角
从以上公式可近似得出f ≈ 0.35/t,其中f为频带宽度, t r t_r tr代表建立时间。又上式可知该波形的频谱主瓣有70Mhz带宽。其中低频部分能量多,辐射能力差,而高频部分能量小但辐射能力强,因此对于低频分量实施的措施是隔离技术,对于高频分量实施的措施是吸收技术。需要指出的是由于高频分量的趋肤效应和导线存在的寄生电感的影响,因此板卡中参考地的接地线不应只考虑阻抗,一定要足够宽。 -
静电测试
此图,为SN65MLVD203B 抗 8kV HBM 和IEC61000-4-2接触放电。由此可见IEC-ESD测试比HBM-ESD测试严格:50%更大容量的放电电容(CS),78%更小放电电阻(RD),IEC的RD会产生大的放电电流。
IEC61000-4-2,推荐接触放电测试方法:空气放电的可重复性低,空气放电的防护标准是依据接触放电推导出来的。
EMC基础-测试方法
EMC基础-整改方向
- 对于高频干扰,由于穿心电感性磁珠由于电感量太小,所以作用微弱,电源滤波器的安装十分必要,
软件
嵌入式工程
模块化
sys_dict | ||
zchs_protocol | ||
vince | pipe | grab |
HAL |
由于sys_dict是系统运行模块,侧重于纯运行指向。
zchs_protoclol是主板串口协议,侧重于数据解析、运行。
以上两个模块,上层没有数据,只运行,下层有数据,且运行。
所以上层调用下层,不需要有形参,因为没有数据交互。
所以调用的zchs_protocol外接口,均为 errcode function(void);
又因为,抛出错误,和函数返回错误相比,优先抛出错误。所以调用的zchs_protocol外接口,均为 void function(void);
综上如果上下层有数据流向,需要外接口函数加形参。这样就把数据结构封装在模块内。
封装从实践中来,到实践中去
人在不断成长,以前的架构、模块。后来看总是不那么完善。整机也是一样,一开始就超前,考虑那么周全。所以,需要以后的不断从实践中提炼,提升,然后再次优化改造。但是,好的前瞻性设计,可以兼容后来的不可知的改造。所以,还需要基本的构造思想。
设计一个电机驱动模块。既想兼容STM芯片,又想兼容MCROCHIP芯片;既想兼容步进电机,又想兼容伺服电机;既想兼容定时器驱动,又想兼容纯软件驱动。又想兼容模块拆解。这不现实,原因就是项目,人都在不断成长。而且,人和项目也不适合瀑布式开发,人的精力不允许。
所以,好的机器,好的技术,都是迭代出来的,重点就是可以实现可迭代的一套思想。一定以上一代的为基准红线,更优化,更兼容。
因此,对于一个电机驱动模块,只要封装好大类,扩展类,不会影响系统结构(sizeof之类的兼容)。那就从一个最简单的步进电机驱动器开始,只驱动速度,方向,脉冲量。
进而,兼容挂载定时器。进而,兼容速度曲线。进而兼容对外可挂载的接口。进而,兼容,不同芯片。进而,兼容不同类电机。。。。。。。最后,成长为一个最通用的电机驱动模块。
软件硬件结合处
上电时序
一个整机系统,可能有很多传感器,和部件。甚至,有不止一个cpu 和 mcu。
cpu 我们通常作为上位机,进行业务处理、整体工程管理、数据管理、以及算法计算。
mcu我们通常用作中继平台【对各个部件统一管理,上位机通常是linux或者windows系统,开机缓慢,不适合做各个部件统一管理的平台,只适合数据、业务处理的平台】,或者传感器扫描【传感器扫描是严格实时扫描,所以最好是一个单独的小mcu】。
有着这么多的部件,如何揉到一起,有着一个共同的问题,就是各个部件如何上电,如何开启服务。比如以机器人为例:
这里上电时序 和 首次上电的通信时序有着密切关系,比如F103对 G0舵机mcu上电管理(保证3S可开机正常运行),并且对RK3588也进行电源管理(保证20S正常开机),那么又要求的G0舵机每500ms上传一次姿态数据。在第开机3S后,G0即开始向RK3588上传数据,而RK3588正在启动中,给系统造成了不可靠的隐患。
再比如,图中舵机供电由F103管理,但是通信却由G0舵机MCU管理,这里G0舵机不知道舵机什么时候上电好。
稳妥解决方法:
- 通信协议加开机自启 和 握手
- 各个部件mcu管理各个部件的电源 和 通信(物理上解耦合)。