文|周立功
日期|2021年11月29日
ZLG致遠電子創(chuàng)始人周立功
你用的mcu漲價了,這還不是最壞的結(jié)果。過去20多年里芯片漲價,半年后基本上都會緩和下來。今年不一樣,接近年底了,還沒有任何跡象表明明年何時恢復(fù)供應(yīng),很多企業(yè)損失慘重。
現(xiàn)在的情況是很多型號的mcu,原廠直接告訴你一句話“斷供”,有錢都買不到。資本同樣是逐利的,僅有的產(chǎn)能肯定轉(zhuǎn)做利潤更豐厚的芯片。
某些替代的芯片能買到,雖然無法完全兼容,但功能上可以實現(xiàn)100%替代,而切換平臺基本上等于重新開發(fā)和測試。
壞消息越來越多,市場傳言莫衷一是。轉(zhuǎn)換mcu的產(chǎn)品成了企業(yè)最大的危機,不僅騰不出人員開發(fā)新產(chǎn)品,而且很有可能原產(chǎn)品軟件工程師已經(jīng)離職了,那怎么迭代維護升級呢?老板想哭都沒人理,但危機卻讓人更加懂得珍惜人才,而從某種意義上來說,關(guān)鍵還是創(chuàng)始人是否能夠從危機中看到未來的機會。
這次大缺貨的教訓(xùn),讓很多創(chuàng)始人意識到供應(yīng)鏈的重要性,深刻地認識到一個樸素的道理,
如何讓代碼高度復(fù)用?這是降低開發(fā)成本,快速應(yīng)對危機最有效的軟件開發(fā)管理策略。
雖然看起來都是軟件,但開發(fā)(電子產(chǎn)品的)嵌入式軟件和計算機軟件依然差別巨大。盡管IT技術(shù)高速發(fā)展了30多年,軟件開發(fā)技術(shù)已經(jīng)有了很大的進步,但電子領(lǐng)域的專家與計算機軟件專家還是沒有很好地跨界整合,從而導(dǎo)致企業(yè)普遍缺乏科學(xué)的軟件工程技術(shù)管理方法。不僅軟件難以重用,而且擴展和維護難度很大,長期以來開發(fā)成本居高不下。
從軟件開發(fā)來看,軟件工程與計算機科學(xué)(站在電子技術(shù)領(lǐng)域的角度來看,可以歸類為嵌入式計算機科學(xué))是完全不同的兩個領(lǐng)域的知識。其主要區(qū)別在于人,因為軟件開發(fā)是以人為中心的過程。如果考慮人的因素,軟件工程更接近經(jīng)濟學(xué),而非計算機科學(xué),所以如果不改變思維方式,則很難開發(fā)出既好賣成本又低的好產(chǎn)品。
那到底如何才能實現(xiàn)軟件高度復(fù)用呢?其實計算的本質(zhì)和共性就是數(shù)據(jù)流(Flow),顯然數(shù)據(jù)存儲、數(shù)據(jù)傳輸……所以可以將各種軟件按照分類抽象為節(jié)點(代碼塊),通過AWFlow Design設(shè)計器實現(xiàn)拖拽式編程。如下圖所示,程序塊間通信如同水流管道,每個程序塊間的關(guān)系一目了然。尤其是虛擬設(shè)備接口,已經(jīng)不是單個設(shè)備的業(yè)務(wù)邏輯軟件開發(fā),而是設(shè)備與設(shè)備之間的軟件開發(fā),整個系統(tǒng)與網(wǎng)絡(luò)的軟件開發(fā),真正實現(xiàn)物與物之間的Flow開發(fā)。
節(jié)點的連接軟件,通常稱為業(yè)務(wù)邏輯軟件,既可以使用廣州致遠電子定義的fscript腳本編程,更方便的使用AWBlock積木式圖形化卡盒設(shè)計器編程,如同少兒編程軟件Google的Blockly、微軟的MakeCode那樣編程,而AWBlock是廣州致遠電子使用c語言設(shè)計的,可以直接運行在各種mcu上的軟件設(shè)計器,因此AWBlock開發(fā)方式結(jié)束了多變的用戶需求問題。
說句實在話,再豐富的節(jié)點、組件資源,也無法滿足所有的應(yīng)用場景和用戶需求,不可避免地會出現(xiàn)用戶定制化的內(nèi)容。無休止地投入研發(fā)資源定制開發(fā)成本極高,這是不現(xiàn)實的。而由用戶自行二次開發(fā),無論是底層的C/C 開發(fā),或是Lua、JS、Python等通過腳本語言開發(fā),甚至是將業(yè)務(wù)收縮,僅保留行業(yè)相關(guān)配置,比如,AT命令、運動控制命令等,學(xué)習(xí)這些知識始終是有門檻,需要有較強的專業(yè)背景。
AWBlock拼圖式軟件開發(fā),無需懂得相關(guān)的軟件知識,開發(fā)者可以將自己想要表達的內(nèi)容和想法,很自然地通過AWBlock描述出來。
當(dāng)將這些軟件都集成在一起時,就是
EsDA嵌入式軟件設(shè)計自動化工具,還包括AWorksLP(或Linux等操作系統(tǒng))、AWTK圖形用戶界面和ZWS PaaS IoT云服務(wù)。
EsDA可以使應(yīng)用程序框架變得非常清晰,徹底解決程序塊間通信容易混亂的現(xiàn)象,而且也能解決狀態(tài)機復(fù)雜的狀態(tài)管理和事件處理。
下面示例的流圖實現(xiàn)了一個Modbus-RTU與MQTT之間的一個協(xié)議轉(zhuǎn)換應(yīng)用,其中主要分為兩條數(shù)據(jù)流。
modbus_master_poll:Modbus主機輪詢節(jié)點,該節(jié)點運行Modbus主棧功能,可添加多個目標(biāo)從設(shè)備,以及每個從設(shè)備所需要輪詢讀取的
寄存器。節(jié)點根據(jù)配置參數(shù),周期性讀取所管理的從設(shè)備寄存器值,并傳遞至fscript處理節(jié)點。
fscript:腳本節(jié)點,將modbus寄存器數(shù)據(jù)轉(zhuǎn)換成MQTT數(shù)據(jù)定制化邊緣計算(對數(shù)據(jù)進行相關(guān)計算和封裝處理)。
mqtt_out:MQTT上報節(jié)點,將數(shù)據(jù)上傳至用戶指定的云服務(wù)器。
mqtt_in:MQTT下行節(jié)點,監(jiān)聽并接收云端請求,并將請求消息傳遞至fscript處理節(jié)點。
fscript:腳本節(jié)點將MQTT命令轉(zhuǎn)換成對應(yīng)Modbus從機寄存器值定制化業(yè)務(wù)邏輯(如可組合多個命令觸發(fā)系統(tǒng)事件等)。
modbus_master_out:Modbus主棧從機寄存器修改節(jié)點,負責(zé)上級節(jié)點傳遞的寄存器值寫入到對應(yīng)從機設(shè)備中。
modbus_master_out 、modbus_master_poll均為本地自定義的非云端庫的節(jié)點,紫色代表本地加載節(jié)點。aw-flow節(jié)點庫已有可用的Modbus主棧節(jié)點,由于已有的節(jié)點設(shè)計適用于從機數(shù)量和寄存器數(shù)量固定不變的情況,當(dāng)從機設(shè)備或?qū)?yīng)寄存器數(shù)量發(fā)生變化時,需要重新拖拽相關(guān)節(jié)點才能實現(xiàn)。而在此應(yīng)用中,從機設(shè)備和每個從機寄存器的數(shù)量是可變的,所以當(dāng)前節(jié)點并不適用,需要一個可以支持設(shè)備和
寄存器數(shù)量動態(tài)變化的節(jié)點?;诖?,需要將這樣的Modbus應(yīng)用場景,重新抽象為一個新節(jié)點,但該節(jié)點與原節(jié)點并不沖突,適合相應(yīng)場景的另一種形式,同樣是通用Modbus應(yīng)用節(jié)點。后續(xù)可以標(biāo)準(zhǔn)化,添加到節(jié)點庫中。
EsDA的開發(fā)始于2006年,自始至終圍繞
“幫助用戶解決非核心域的問題,讓用戶專注于自身產(chǎn)品核心域的算法、行業(yè)需求、用戶體驗、市場營銷、工藝創(chuàng)新和生產(chǎn)制造”的思路而展開的,因為所有與底層相關(guān)的差異化軟件,以及各種通信協(xié)議等軟件的開發(fā),則是我們的核心域。
在產(chǎn)品開發(fā)中,如果你是一個有很多好的idea,且熱衷于創(chuàng)造的人。但又由于缺乏更專業(yè)的
軟件開發(fā)功能,可能一時難以編寫復(fù)雜的軟件代碼,最終無法將自己的想法轉(zhuǎn)變成現(xiàn)實,那么選擇EsDA則是最佳的捷徑。
回頭再來看硬件設(shè)計存在的問題,一個簡單電路的器件,通常來源于幾個不同的廠家。焊接到pcb,不僅占用加工時間,而且多個器件組合而成的電路,其可靠性具有很大的離散性,因此使用分立器件設(shè)計電路不如使用模塊。
顯然,需求一旦確定,則很容易幾個小時之內(nèi)焊接好原型機。如果空間不受限,則立即可以批量制造。我們設(shè)計了兩種底板,分別為8/12個擴展槽,其中一個插電源模塊,另一個插通信模塊,其它的擴展槽可以任意插入數(shù)字輸入輸出和模擬數(shù)據(jù)采集模塊。需要編程嗎?不需要!這是一個獨立的邊緣計算控制器。
邊緣計算芯片預(yù)置了通用代碼,通過配置即可實現(xiàn)所需要的功能。方法一是燒錄功能配置文件,方法二是通過主機發(fā)送命令綁定數(shù)據(jù),就可以配置為任意功能的控制器,比如,3路輸入、5路輸出、2路熱電偶溫度采集和1路4-20mA的接口,即可實現(xiàn)柔性化硬件設(shè)計和任意電路擴展,從而極大地降低了設(shè)計成本。
企業(yè)在發(fā)展中,競爭是十分殘酷的,總會遇到重重困難和各種各樣的競爭者。比如,公司離職的員工會拉走你的人,和你做一樣的產(chǎn)品;也有競爭者模仿生產(chǎn)和你兼容的產(chǎn)品,他們采取低價銷售的方法和你爭奪客戶,怎么辦?人都是從青澀的年紀走向成熟的,多少都會有無奈的抱怨。但隨著時間的推移,很多人卻沒有被打倒,而是愈挫愈勇越做越好,是什么原因?成功者深刻地認識到,困難是最好的恩人,對手是最好的老師。因為凡事都有對立面,要有反對你的人,你才能將事情做得更好。如果你做什么都很順利,就很容易失敗。有人反對你,有人和你競爭,你應(yīng)該感到高興,因為絕好的機會來了。所以一定要知道,盡管對手能夠通過模仿加入競爭,卻無法偷到你明天的創(chuàng)新。因為最好的防御就是進攻,要敢于打破自己原有的優(yōu)勢形成新的優(yōu)勢,用開闊的胸懷看待世界,那世界慢慢就是你的。
我多么地渴望有一番令人驕傲的才干,也希望能改變這世界的某個角落,而要實現(xiàn)這樣的人生理想,不能我一個人戰(zhàn)斗,而是需要一個優(yōu)秀而卓越的創(chuàng)新型人才群體,因此我同樣非??释麅?yōu)秀的軟硬件人才加盟廣州致遠電子有限公司。
很多人問我,你有什么要求?我想說的是創(chuàng)新是民族進步的源泉,那什么是創(chuàng)新的源泉?首先需要回答,什么是人類心智的最高能力?性靈!性靈是什么?想象力、直覺和感悟。
一個人有很好的出身,固然很重要。而如我一個卑微的技校生,反而會促使自己努力奮斗,用一生證明自己存在的價值。我們可以選擇從事熱愛的職業(yè),用瘋狂的學(xué)習(xí)精神改變自己的命運。如果你也是這樣的人,那就是我們的同盟軍。