jdb游戏

广告位

您现在的位置是:主页 > 程序问题 >

为什么需要做上位机程序开发?什么是上位机程序开发

2021-03-10 14:17程序问题 人已围观

简介前几天在知乎收到一个邀请回答,题目是:单片机嵌入式的上位机编程用哪个比较好?C++、C#、JAVA 、 DELPHI、VB各个程序的优势、缺点在哪里? 先回答一下单片机嵌入式的上位机编程用...

前几天在知乎收到一个邀请回答,题目是:单片机嵌入式的上位机编程用哪个比较好?C++、C#、JAVA 、 DELPHI、VB各个程序的优势、缺点在哪里?
 
 
 
先回答一下单片机嵌入式的上位机编程用哪个比较好?这个问法其实不太好,常用的上位机与嵌入式的通讯方式有RS232、RS485、CAN、LIN,甚至还有RJ45的TCPIP。要确定使用什么语言开发之前,先要确定使用哪一种通讯方式,不同的通讯方式使用的适配器不一样,不同的适配器对不同语言的支持程度也不尽相同。像RS232、RS485、TCPIP这类比较常见的通讯方式比较好开发,csdn\pudn上的例程序也很多;而CAN、LIN总线通讯就要看所使用擦CAN支持哪种编程语言,如ZLG USBCAN就支持C++、C#、VB。再来就是选用自己熟悉的语言,按我国的本科教育,大二会学习C语言。所以,【思想】优先推荐C++与C#,如果没有C语言基础,可以推荐VB.NET,这里说下VB.NET其实与C#都同属于微软的.NET框架,但是VB.NET的语法跟C语言差太多,不建议学过C语言的去折腾。至于Java与Delphi,Java的上位机好像没见过,Delphi【思想】暂时没有接触不好评价。


 
 
我们为什么需要上位机
 
其实,很多老铁会疑惑为什么需要上位机工具。刚好借这个机会跟大伙好好聊聊这个问题!
 
 
 
对于CAN总线调试,功能最强大的肯定是Vetor Canoe/CANalyzer,但是他们价格不菲。
 
 
 
这种东西是不可能做到人手一个的,大部分工程师还是用PCAN、USBCANII、高仿USBCANII等。
 
 
 
上面这些CAN盒各位老铁能分得清吗?以后我们找个时间细说。这类工具匹配的总线分析软件有MasterBus、cantest、zcanpro等。但是这些软件往往无法满足要求,比如信号的积分、微分、四则运算等。所以就需要开发一个款兼容廉价CAN卡的上位机工具,方便工程人员的调试。
 
 
 
同样的标定也是这样,土豪厂一般都会用INCA或者CANAPE这列的标定工具,如果条件没那么好,就自己开发一个标定的专用上位机。总之穷B都只能自己来。
 
 
 
安全
 
除了开发工程师外,还有其他人员会需要总线分析工具。比如:4S店的售后人员。这类人员通常不需要完整的通讯协议。可以
 
直接做一个诊断用的上位机,通过OBD获取故障信息即可,简单可靠,对使用人员的要求也比较低。
 
感知
 
最近几年ADAS大行其道,摄像头、雷达等传感器越来越多。CANOE这类传统的工具,要实现总线数据的融合与再现是非常复杂的。
 
 
 
这时候上位机工具就尤为重要了。它能够将图像信号与传感器信号融合,提高评估调试的效率。
 
 
 
还有就是ROS系统下Rviz,可以显示各节点中的数据,如雷达、路径等,功能十分强大!
 
 
 
 
优秀的上位机
 
多线程
 
多线程其实是上位机工具必须要有的特性。假如CAN盒有两个通道,就需要2个线程接收两个总线数据,写入缓冲队列。
 
 
 
在主线程中读取到UI控件中,并清除队列,这样做主线程才不会出现阻塞,通俗点就是程序的无响应。
 
 
 
基于DBC文件
 
这是一个比较新颖的做法,目前古德曼汽车工业开发的上位机是这么做。上位机通过dbc文件解析通讯协议,从而实现多个版本通讯协议无感切换。但是,一定要注意对dbc文件做加密解密处理,否则会造成通讯协议的泄露。
 
 
 
报文回放
 
报文的回放是一个非常有用的辅助功能,【思想】见过很多人采集数据后,通过两个CAN盒再现采集回来的数据。
 
 
 
如上图是【思想】开发的一款ASC文件播放工具,根据报文的采集间隔给主线程播放报文,并且能对播放的进入与速度进行控制!
 
 
 
其实,在产品开发过程中,上位机调试工具是最不受重视的一个环节。一个产品的成功没少人会记得调试的上位机做的怎么样!但就是这么一个不起眼的工具,对程序的debug是起至关重要的作用。可以提高调车时的销量。

Tags:

广告位
    广告位

本栏推荐

    广告位

标签云

站点信息

  • 文章统计260篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们