发新帖本帖赏金 2.00元(功能说明)我要提问
12下一页
返回列表
[STM32F1]

STM32 多板卡测试平台(三)

[复制链接]
4034|28
手机看帖
扫描二维码
随时随地手机跟帖
TXQDM|  楼主 | 2016-8-30 22:26 | 显示全部楼层 |阅读模式
编程电阻板卡设计方案
1、结构框图
QQ截图20160830222710.png
2、公共部分方案详解
主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载负责输出8路模拟电阻值,四片MCP42050实现,通过SPI接口进行电阻值设置,支持255个档位,也可以接入电源输入,当做电位器使用。
程序设计使用官方标准库STM32F10x_StdPeriph_Lib_V3.5.0.zip进行开发。使用Keil4.74进行开发,具体参见版本信息参加下图
图片1.png

工程共包含以下4个文件夹
        App                ——存放用户程序,包含CAN通信处理,数据信号处理
        Libraries        ——STM32F10x标准库文件
        RVMDK        ——工程文件以及生成的中间文件,固件文件
        User                ——main文件以及STM32的配置文件、中断文件
SPI1的初始化函数,设置SPI的速度分频时,如果大于64分频,会导致SPI通信时间过长,此时应注意片选信号的时序逻辑,防止片选信号提前拉高。
图片2.png
以下是CAN通信的应答处理,包含片选信号逻辑处理,以及SPI1通信函数。
图片3.png
通多SPIMCP42050进行电阻值设置。
图片4.png
SPI1通信的波形图,前8个字节为设置命令,后8个字节为要设置的电阻值
图片5.png



打赏榜单

21ic大掌柜 打赏了 2.00 元 2016-08-31
理由:原创

TXQDM|  楼主 | 2016-8-30 22:30 | 显示全部楼层
[size=18.6667px]PWM开关输出板卡设计方案

1、结构框图
QQ截图20160830223049.png 2、公共部分方案详解
        主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载负责输出8路数字信号与4PWM信号,支持5V/24V跳线选择。PWM信号支持四路信号独立设置,每路支持16级占空比调节,输出频率10-10KHz
        数字信号由STM32GPIO直接生成,经由74LVC4245A进行3.3V5V的转换,然后经ULN2003进行功率放大后输出。
        PWM信号由STM32TIM2-5的四个定时器直接产生,通过改变每路定时器的计数值改变WPM频率,然后在定时中断中进行占空比的调节。

3、程序代码详解
程序设计使用官方标准库STM32F10x_StdPeriph_Lib_V3.5.0.zip进行开发。使用Keil4.74进行开发,具体参见版本信息参加下图。
图片6.png
工程共包含以下4个文件夹
        App                ——存放用户程序,包含CAN通信处理,数据信号处理
        Libraries        ——STM32F10x标准库文件
        RVMDK        ——工程文件以及生成的中间文件,固件文件
        User                ——main文件以及STM32的配置文件、中断文件
在宏定义中,直接设置GPI哦对用通道的输出信号,并返回应答结果。
图片7.png
图片8.png
PWM配置函数,通过改变定制器计数中断时间设置PWM的频率。
图片9.png
图片10.png
以下是定时器的初始化函数,没改变一次PWM频率会被执行一次。
图片11.png
以下是定时器中断中的PWM调节函数,通过中断计数对比改变占空比。
图片12.png

使用特权

评论回复
TXQDM|  楼主 | 2016-8-30 22:32 | 显示全部楼层

高低边开关负载板卡设计方案

1、结构框图
QQ截图20160830223430.png

2、公共部分方案详解
        主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载采集六路高低边通路上的电流信号,并根据电流信号的大小,判断ECU到负载的线路是断路、正常还是短路。
        每路测量通道通过在电路中接入两个50欧姆的并联电阻,采集电流信号,然后通过MAX4080F将电流信号转换为对应的电压信号,在经过两路电压比较器与不同的基准电压进行比较,最后输出两路数字信号,以此判断负载电路的状态。

使用特权

评论回复
TXQDM|  楼主 | 2016-8-30 22:33 | 显示全部楼层

电机负载板卡设计方案

1、结构框图
QQ截图20160830223610.png
2、公共部分方案详解
        主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载采集电机通路上的电流信号,并根据电流信号的大小,判断ECU到负载电机的线路是断路、正常还是短路。不考虑电机的正反转,可测量两路电机负载。
        通过在连接电路中接入两个50欧姆的并联电阻,采集电流信号,然后通过MAX4080F将电流信号转换为对应的电压信号,在经过两路电压比较器与不同的基准电压进行比较,最后输出两路数字信号,以此判断电机负载在电路的状态。





使用特权

评论回复
TXQDM|  楼主 | 2016-8-30 22:35 | 显示全部楼层

模拟电压信号采集板卡设计方案


1、结构框图
QQ截图20160830223610.png
2、公共部分方案详解
        主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载采集八路模拟电压信号,原始数据范围0x0-0xFFF,对应电压范围0-5500mV
        模拟信号输入之后经过68K/102K电阻分压,将0-5500mV对应到0-3300mV上,在经过钳位保护与电压跟随器后,直接由STM32进行ADC采样。

程序设计使用官方标准库STM32F10x_StdPeriph_Lib_V3.5.0.zip进行开发。使用Keil4.74进行开发,具体参见版本信息参加下图。
图片1.png
工程共包含以下4个文件夹
        App                ——存放用户程序,包含CAN通信处理,数据信号处理
        Libraries        ——STM32F10x标准库文件
        RVMDK        ——工程文件以及生成的中间文件,固件文件
        User                ——main文件以及STM32的配置文件、中断文件
APP.c中通过此函数进行ADC的初始化设置,开启8路转换通道,并设置为顺序转换模式。
图片2.png
通多此函数开启DMA通道,将ADC对应的转货结果直接存入CurAD[8]变量中。
图片3.png
obd.c中的以下函数负责计算测量结果,并返回给上位机。
图片4.png







使用特权

评论回复
TXQDM|  楼主 | 2016-8-30 22:38 | 显示全部楼层
PWM数字信号采集板卡设计方案
1、结构框图
QQ截图20160830224123.png

2、公共部分方案详解
        主控制器采用STM32F103RCT6,外置8MHz晶振,有复位电路但不设置复位按键,外界JTAG调试接口(10P),支持J-link-ST-link,具体可参考板卡原理图。
        系统使用5V供电,板载LDO稳压至3.3V,为控制器等供电,同时引入功率24V电(P24)与系统24V电源(S24,为负载或测试ECU提供电压基准。
        板载3.3V电源指示灯,默认为红色,同时提供两个绿色LED,用作系统运行状态指示,具体链接可参考板卡原理图。
        板卡再带两路拨码开关,用来调节CAN通信的基础地址,具体设置方式可参考板卡使用说明。
        所有板卡及上位机之间使用CAN接口通信,遵循J1939通信协议,STM32外接TJA1051T/3收发器,与上位机进行CAN通信,各板卡与上位机地址独立。
3、各板卡子功能详解
        本板卡负载采集八路PWM信号与六路数字信号,        八路PWM信号要求包含频率、占空比,数字信号只获取高低电平即可。
        PWM信号采集电路自带钳位保护,并使用施密特触发器SN74LVC2G17DBVR进行信号整形,数字信号使用ULN2003进行隔离,支持5V24V输入,同时也使用施密特触发器进行信号整形。
数字信号采集部分直接使用GPIO的信号输入功能,由上位机发送指令出发信号采集,病用过CAN通信返回采集结果。
        PWM信号使用STM32内部定时器TIM2TIM48路输入通道,进行信号捕获,在捕获中断中进行上升沿与下降沿的判断,病以此计算PWM信号的频率与占空比。


程序设计使用官方标准库STM32F10x_StdPeriph_Lib_V3.5.0.zip进行开发。使用Keil4.74进行开发,具体参见版本信息参加下图。
图片1.png
工程共包含以下4个文件夹
        App                ——存放用户程序,包含CAN通信处理,数据信号处理
        Libraries        ——STM32F10x标准库文件
        RVMDK        ——工程文件以及生成的中间文件,固件文件
        User                ——main文件以及STM32的配置文件、中断文件
APP.c——>Tim2_PWM_Init(void)函数中,可在以下位置设置TIM2的时钟分频,不分频为72MHz,通改变定时器的时钟频率,可设置PWM的最小测量频率。同时设置计数器为全量程向上计数。
图片2.png

stm32f10x_in.c——>TIM2_IRQHandler()中断函数中,如此为一个程序块,进行一个通道的捕获数据处理。每次进入捕获中断时,通过已经记录的定时器计数数据,判断是第一次上升沿、下降沿、还是第二次上升沿,对应的处理分别如下。
第一次上升沿——记录捕获寄存器同步的计数寄存器数据,并设置为下降沿捕获
下降沿                ——记录捕获寄存器同步的计数寄存器数据,并设置为上升沿捕获
第二次上升沿——记录捕获寄存器同步的计数寄存器数据,到此一次PWM捕获结束
然后通过冗余判断,确实是否需要将后两次捕获到的数据进行溢出处理(+65535
之后计算PWM的频率、占空比,最后将相关变量清空,并下一次PWM捕获。
图片3.png




使用特权

评论回复
TXQDM|  楼主 | 2016-8-31 19:07 | 显示全部楼层
上海唐辉电子90 发表于 2016-8-31 10:48
搭配STM32的8M晶振,唐辉电子,可以免费给您样品。

唐辉电子,深耕晶振行业15年,非常专业,行业公认。

多谢,有需要我会联系你们的!

使用特权

评论回复
zhonjia| | 2016-9-2 11:03 | 显示全部楼层
搞得不错

使用特权

评论回复
mytom520| | 2016-9-3 10:27 | 显示全部楼层
通用化,模块化做的不错。思路很清晰

使用特权

评论回复
申小林一号| | 2016-9-3 15:36 | 显示全部楼层
实物的板卡电路图呢?还有就是你的CAN走的是CANOPEN协议么?

使用特权

评论回复
TXQDM|  楼主 | 2016-9-3 21:12 | 显示全部楼层
申小林一号 发表于 2016-9-3 15:36
实物的板卡电路图呢?还有就是你的CAN走的是CANOPEN协议么?

公司的内部资料,不能放出来
不是,走的J1939协议

使用特权

评论回复
TXQDM|  楼主 | 2016-9-3 21:14 | 显示全部楼层
mytom520 发表于 2016-9-3 10:27
通用化,模块化做的不错。思路很清晰

主要是一开始规划做得好,后边不过是按部就班了!

使用特权

评论回复
TXQDM|  楼主 | 2016-9-3 21:14 | 显示全部楼层

见笑见笑

使用特权

评论回复
jjlink| | 2016-9-5 14:56 | 显示全部楼层
完整的源码工程能放出来学习一下吗?

使用特权

评论回复
himalauas| | 2016-9-5 17:23 | 显示全部楼层
学习了,好东西都要好好看看

使用特权

评论回复
TXQDM|  楼主 | 2016-9-5 23:04 | 显示全部楼层
jjlink 发表于 2016-9-5 14:56
完整的源码工程能放出来学习一下吗?

不敢啊,
公司的内部的资料,
不过你要是需要的话,
可以留个邮箱,
我单独发你一份!

使用特权

评论回复
TXQDM|  楼主 | 2016-9-5 23:06 | 显示全部楼层
himalauas 发表于 2016-9-5 17:23
学习了,好东西都要好好看看

多谢支持!
一起共勉啊!

使用特权

评论回复
whirt_noob| | 2016-9-6 08:34 | 显示全部楼层
TXQDM 发表于 2016-9-5 23:04
不敢啊,
公司的内部的资料,
不过你要是需要的话,

有STM8的吗?能发我一份学习一下吗?

使用特权

评论回复
youxin2004| | 2016-9-6 12:05 | 显示全部楼层
通用化,模块化做的不错。思路很清晰

使用特权

评论回复
TXQDM|  楼主 | 2016-9-6 22:23 | 显示全部楼层
youxin2004 发表于 2016-9-6 12:05
通用化,模块化做的不错。思路很清晰

主要是前期规划做的好,
后边的工作不过是按部就班的执行罢了!

使用特权

评论回复
发新帖 本帖赏金 2.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

110

主题

593

帖子

11

粉丝