新闻动态   News
联系我们   Contact
你的位置:首页 > 新闻动态 > 新闻资讯

2025.1.13 经验分享会

2025/1/13 18:20:30      点击:

      2025年1月13日下午,上海实邦电子科技有限公司开展了一次经验交流会,由宋和陈工一起分享了他们在工作中积累的一些经验

      首先是工分享了----Mbedtls移植

      TLS
      传输层安全性协议(英语:Transport Layer Security,缩写作TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,它通过使用加密算法和证书机制来保护数据的机密性、完整性以及验证通信双方的身份 。
      可实现TSL加密协议的库有很多,但受限于单片机资源,需要尽量选择代码体积小,运行效率高的库。推荐Mbedtls、wolfSSL,本次介绍用Mbedtls库实现MQTT加密通讯。



      建立连接后先由客户端发Client Hello信息,包含TLS协议版本信息、会话ID、支持的加密套件、用于计算秘钥的随机数等。服务器在能够找到一组可接受的算法后,将响应Client Hello消息并发送server hello,包括服务器版本、选择的加密算法、密钥交换算法、用于计算秘钥的随机数、MAC算法、根据客户端会话参数生成的会话ID(用于会话恢复)等。再协商好加密算法后服务器、客户端验证证书,交换密钥,建立连接。


      Mbedtls移植

      1、下载Mbedtls库,复制library、include文件至工程文件夹中,添加示例配置文件,keil中添加宏定义。


      2、根据需求,修改配置文件中宏定义,添加ssl读写函数。按照例程进行程序初始化。




       然后是工分享了----显示屏

       一、显示屏种类对于实际使用效果的影响
       显示屏种类: 单色,彩色


       二、显示屏驱动注意事项
       屏幕ic驱动芯片注意各个型号的性能区别


       2.驱动mcu的选择

       对于单色屏幕,任意型号的MCU都可以流畅驱动

       对于彩色屏幕需要根据项目需要达到的流程层次来选择了

       1.客户不追求刷屏效果,字体,ui等,也是任意MCU即可。但是不建议这么做,早期可能不追求,后面想改非常麻烦

       2.客户追求一般效果的,简易ui,简易字体,或者抗锯齿字体

       根据屏幕通讯协议选择:
       2.1分辨率小(135x135),spi至少24m以上的,达不到的选择并口
       2.2分辨率大(240x240),SPI至少40m,或者使用并口,FSMC
       2.3更大的分辨率自己驱动就没有意义了,效果差


       RAM和FLAHS的选择
       2.4一般不附带屏幕缓冲区的对RAM占用极小,可以忽略,主要考虑项目其他功能对RAM的占用
       2.5Flash占用,主要考虑两个方面,一个是字库,一个是图片。字库又分很多种,非抗锯齿字库和抗锯齿字库,占用和字体尺寸和数量有关。一般至少要有64k(后续会介绍占用大致在什么地方)

       3.客户追求高级效果的
       一般需要高级效果的是指刷新率高,有控件概念的,有动画等,这种移植LVGL图形库就可以了。
       通常非常吃性能,主频至少上百M,而且RAM和flash要求非常高!


       三、关于屏幕驱动的性能优化

       同样的性能,甚至更差的性能,别人刷的很快,为什么你的屏幕刷不快?
       1.高频调用的功能能#define不要去写函数
       2.高频的操作能直接访问寄存器不要调用库函数
       3.对于spi:spi的操作效率直接影响刷屏速度,因此操作spi需要格外注意。

       4.对于dma加速说明


       DMA是否能加速取决于是否可以传输大量数据,如果一次传输几个字节,十几个字节,这种情况反而比普通spi慢,但是大量传输又比较占用RAM,而且涉及到缓冲区机制,有些功能不方便写,例如打点,画线,写字,只有一个方形区域填充时可能比较适合。
       其实dma更加适合在图形库中应用,图形库一般都是有缓冲区,文字或者图像先是渲染到缓冲区然后才开始搬运到屏幕。

       5.两个关键函数的效率-打点和区域填充

       屏幕显示驱动库介绍:关于屏幕显示已经做过了很多项目了,串口屏不讨论,水表,电动移液器,HHR,饲喂器,这些项目都是要自己驱动屏幕,有单色,有彩色。做的过程中遇到了各种各样的问题,有要求UI效果的,有要求字体效果的,有要求排版对其方式的...也有一些项目被客户诟病,UI效果差,字体是糊的不是抗锯齿,刷屏速度慢,效果非常low,各种细节做的不好等等,当然一方面确实是我们技术的原因,还有一方面就是客户的异想天开了,短时间是不可能达很好的效果的,别人做的好肯定是花时间了的。

       不过基于客户的需求,在低性能和高效果之间还是找到了平衡
       多语言,抗锯齿字体,图标如何显示,排版和对其方式