吉林课烁物流有限公司

聯(lián)系我們???Contact

2025.1.13 經(jīng)驗分享會

2025/1/13 18:20:30??????點擊:

      2025年1月13日下午,上海實邦電子科技有限公司開展了一次經(jīng)驗交流會,由宋和陳工一起分享了他們在工作中積累的一些經(jīng)驗。

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

      TLS
      傳輸層安全性協(xié)議(英語:Transport Layer Security,縮寫作TLS),及其前身安全套接層(Secure Sockets Layer,縮寫作SSL)是一種安全協(xié)議,它通過使用加密算法和證書機制來保護數(shù)據(jù)的機密性、完整性以及驗證通信雙方的身份 。
      可實現(xiàn)TSL加密協(xié)議的庫有很多,但受限于單片機資源,需要盡量選擇代碼體積小,運行效率高的庫。推薦Mbedtls、wolfSSL,本次介紹用Mbedtls庫實現(xiàn)MQTT加密通訊。



      建立連接后先由客戶端發(fā)Client Hello信息,包含TLS協(xié)議版本信息、會話ID、支持的加密套件、用于計算秘鑰的隨機數(shù)等。服務(wù)器在能夠找到一組可接受的算法后,將響應(yīng)Client Hello消息并發(fā)送server hello,包括服務(wù)器版本、選擇的加密算法、密鑰交換算法、用于計算秘鑰的隨機數(shù)、MAC算法、根據(jù)客戶端會話參數(shù)生成的會話ID(用于會話恢復(fù))等。再協(xié)商好加密算法后服務(wù)器、客戶端驗證證書,交換密鑰,建立連接。


      Mbedtls移植

      1、下載Mbedtls庫,復(fù)制library、include文件至工程文件夾中,添加示例配置文件,keil中添加宏定義。


      2、根據(jù)需求,修改配置文件中宏定義,添加ssl讀寫函數(shù)。按照例程進行程序初始化。




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

       一、顯示屏種類對于實際使用效果的影響
       顯示屏種類: 單色,彩色


       二、顯示屏驅(qū)動注意事項
       屏幕ic驅(qū)動芯片注意各個型號的性能區(qū)別


       2.驅(qū)動mcu的選擇

       對于單色屏幕,任意型號的MCU都可以流暢驅(qū)動

       對于彩色屏幕需要根據(jù)項目需要達到的流程層次來選擇了

       1.客戶不追求刷屏效果,字體,ui等,也是任意MCU即可。但是不建議這么做,早期可能不追求,后面想改非常麻煩

       2.客戶追求一般效果的,簡易ui,簡易字體,或者抗鋸齒字體

       根據(jù)屏幕通訊協(xié)議選擇:
       2.1分辨率小(135x135),spi至少24m以上的,達不到的選擇并口
       2.2分辨率大(240x240),SPI至少40m,或者使用并口,F(xiàn)SMC
       2.3更大的分辨率自己驅(qū)動就沒有意義了,效果差


       RAM和FLAHS的選擇
       2.4一般不附帶屏幕緩沖區(qū)的對RAM占用極小,可以忽略,主要考慮項目其他功能對RAM的占用
       2.5Flash占用,主要考慮兩個方面,一個是字庫,一個是圖片。字庫又分很多種,非抗鋸齒字庫和抗鋸齒字庫,占用和字體尺寸和數(shù)量有關(guān)。一般至少要有64k(后續(xù)會介紹占用大致在什么地方)

       3.客戶追求高級效果的
       一般需要高級效果的是指刷新率高,有控件概念的,有動畫等,這種移植LVGL圖形庫就可以了。
       通常非常吃性能,主頻至少上百M,而且RAM和flash要求非常高!


       三、關(guān)于屏幕驅(qū)動的性能優(yōu)化

       同樣的性能,甚至更差的性能,別人刷的很快,為什么你的屏幕刷不快?
       1.高頻調(diào)用的功能能#define不要去寫函數(shù)
       2.高頻的操作能直接訪問寄存器不要調(diào)用庫函數(shù)
       3.對于spi:spi的操作效率直接影響刷屏速度,因此操作spi需要格外注意。

       4.對于dma加速說明


       DMA是否能加速取決于是否可以傳輸大量數(shù)據(jù),如果一次傳輸幾個字節(jié),十幾個字節(jié),這種情況反而比普通spi慢,但是大量傳輸又比較占用RAM,而且涉及到緩沖區(qū)機制,有些功能不方便寫,例如打點,畫線,寫字,只有一個方形區(qū)域填充時可能比較適合。
       其實dma更加適合在圖形庫中應(yīng)用,圖形庫一般都是有緩沖區(qū),文字或者圖像先是渲染到緩沖區(qū)然后才開始搬運到屏幕。

       5.兩個關(guān)鍵函數(shù)的效率-打點和區(qū)域填充

       屏幕顯示驅(qū)動庫介紹:關(guān)于屏幕顯示已經(jīng)做過了很多項目了,串口屏不討論,水表,電動移液器,HHR,飼喂器,這些項目都是要自己驅(qū)動屏幕,有單色,有彩色。做的過程中遇到了各種各樣的問題,有要求UI效果的,有要求字體效果的,有要求排版對其方式的...也有一些項目被客戶詬病,UI效果差,字體是糊的不是抗鋸齒,刷屏速度慢,效果非常low,各種細節(jié)做的不好等等,當然一方面確實是我們技術(shù)的原因,還有一方面就是客戶的異想天開了,短時間是不可能達很好的效果的,別人做的好肯定是花時間了的。

       不過基于客戶的需求,在低性能和高效果之間還是找到了平衡
       多語言,抗鋸齒字體,圖標如何顯示,排版和對其方式















刚察县| 云南省| 奇台县| 余江县| 大石桥市| 双鸭山市| 承德市| 诏安县| 蒲城县| 随州市| 志丹县| 农安县| 仙桃市| 盐城市| 多伦县| 南漳县| 安塞县| 武宁县| 仙游县| 嘉祥县| 栾川县| 清徐县| 蒲江县| 广水市| 黔西| 当涂县| 花莲县| 宝兴县| 海阳市| 宜州市| 吉隆县| 浮梁县| 恭城| 河池市| 寿光市| 突泉县| 虎林市| 永登县| 扬中市| 岳池县| 民和|