在线时间177 小时
UID2086045
ST金币0
蝴蝶豆0
注册时间2014-4-15
金牌会员
- 最后登录
- 2020-7-23
|
a0a.1 0b0c
本帖最后由 王建 于 2014-12-4 09:07 编辑
对工程师来说,不管是以什么开发方式或工具,建议实现以下几个功能。
1.程序的下载调试或程序更新功能
产品一般都有外壳,一般不用用J-Link来更新程序,而是用(USB RS485 CAN)等来更新。我个人认为,J-Link或ST官方的串口下载,需要产品开盖,不如PLC的在线更新方便。
一般的二次bootloader都是使用RS485差分方式,使用半双工的YModem协议。
ST的ISP,需要开盖来设置boot0状态,这在产品中是没有实用性的。
产品接口一般也不会预留Jlink的连接线。
STM32实现在线应用编程,必须自己设计二次bootloader。
2.任务的负载率统计
务必要有输出脚,以脉冲的方式输出整个程序的循环周期,若有条件,对各个模块进行时间统计,保证嵌入式软件
系统的实时性能。
3.关键硬件接口的诊断功能
以STM32F所有的输入输出端口,能以通信的方式告知上位机。若关键的功率输出端口出现故障,应有反馈。
可以选择有故障输出的集成功率输出器件,厂商如英飞凌等。
4.模拟输入信号的实时输出功能
很多嵌入式系统,需要实时监测多路模拟量做数据记录及分析,而示波器等硬件工具并没有那么灵活。
STM32的通讯端口多有DMA功能,可以在基本不占用CPU资源的情况下,实时输出多路模拟量,供第三方
数据记录和分析使用。
备注: 本人最近实现了一个3通道数据波形显示的上位机工具,毎毫秒记录一个数据包,所有数据可以输出为一个多sheet的Excel文件,每个sheet最大保存32000个数据,即记录长度为30秒。如果调整为2-10ms,可连续记录的时间更长。
下位机为STM32F103ZET6,RS485方式通信,波特率460800bps,毎毫秒发送一个数据包,每个数据包为8个字节,前面6个字节为3通道的模拟输入数据,后面两个字节为回车换行字符。届时公开全部硬件原理和源代码,给家里没有示波器的朋友们使用。
|
|