應(yīng)用-嵌入式微系統(tǒng)連載之十二
msOS設(shè)計(jì)的本意是為電子類(lèi)設(shè)備及PLC設(shè)計(jì)的,一開(kāi)始想著仿造西門(mén)子的S7-300來(lái)設(shè)計(jì)一套基于CAN通訊的分布式PLC,然而當(dāng)設(shè)計(jì)了幾個(gè)硬件模塊之后就發(fā)現(xiàn),這個(gè)需求定義超出了我的個(gè)人能力,自己的綜合知識(shí)還沒(méi)有上到這個(gè)層面,所以開(kāi)始退而求其次,仿照普通的PLC,結(jié)合華禹工控及俊知機(jī)械的需求設(shè)計(jì)了一款簡(jiǎn)單的嵌入式PLC,取名為msPLC-Demo。
本文引用地址:http://m.butianyuan.cn/article/263542.htm
msOS開(kāi)發(fā)過(guò)程中的調(diào)試都是用msPLC-Demo的,msPLC-Demo也經(jīng)歷了3個(gè)版本,逐漸完善成熟,通過(guò)對(duì)msPLC-Demo的完善,讓我更清楚工業(yè)設(shè)計(jì)的需求,對(duì)PLC更加理解,比如我們自己建立系統(tǒng),可以不需要標(biāo)準(zhǔn)PLC那么復(fù)雜,接口部分最后演化為共陽(yáng)輸入光耦隔離,中功率共陰輸出直接驅(qū)動(dòng),可以直驅(qū)繼電器類(lèi)驅(qū)動(dòng)器,簡(jiǎn)單、易用。
基于msPLC Demo,做了不少項(xiàng)目,比如400~1200度的紅外激光測(cè)溫儀的校準(zhǔn)臺(tái),測(cè)溫儀與高頻感應(yīng)加熱設(shè)備的控制器,這兩個(gè)都需要一套PID算法,于是就開(kāi)發(fā)了一套面向?qū)ο蟮腜ID庫(kù),簡(jiǎn)單設(shè)置一下溫度值就搞定了溫度控制。機(jī)械自動(dòng)化里面,經(jīng)常需要控制步進(jìn)電機(jī),于是基于德國(guó)公司高性能的TMC262步進(jìn)控制器,編寫(xiě)了步進(jìn)電機(jī)驅(qū)動(dòng)庫(kù)。
msOS開(kāi)發(fā)過(guò)程中,我就建了一個(gè)QQ群:291235815,并且在博客上發(fā)表了要做msOS的信息,把需求描述了一下,感興趣的網(wǎng)友加入了進(jìn)來(lái),其中最主要的群體是原基于Mcu51的“實(shí)用單片機(jī)系統(tǒng)”MS3的客戶群體,他們就是從MS3入門(mén)嵌入式的,所以他們一開(kāi)始就對(duì)msOS產(chǎn)生了很強(qiáng)烈的興趣,在他們的熱情下,加速了msOS的推動(dòng)。在開(kāi)發(fā)完成msOS之后,龐大的MS3用戶群體讓我認(rèn)識(shí)到需要把這個(gè)群體引導(dǎo)到msOS中,于是把MS3按msOS風(fēng)格改寫(xiě),為了區(qū)分兩個(gè)系統(tǒng),改寫(xiě)后的MS3,命名為msOS-Mcu51,而原來(lái)的msOS,命名為msOS-Stm32,加上之后的無(wú)OS精簡(jiǎn)版本msOS-Lite,形成了一個(gè)完整的系列。
群內(nèi)網(wǎng)友積極參與,有些看了msOS代碼之后,寫(xiě)了一些讀后感,比如“獨(dú)釣千古愁”寫(xiě)了不少關(guān)于“設(shè)備”、“抽象”、“面向?qū)ο?rdquo;方面的文章。有些基于msOS系列開(kāi)發(fā)產(chǎn)品后,共享了代碼,也有些把msOS移植到msp430、AVR中,也共享了代碼。我公司基于msOS開(kāi)發(fā)的產(chǎn)品,部分的共享了代碼,比如PID庫(kù),步進(jìn)驅(qū)動(dòng)庫(kù)等。
為了進(jìn)一步普及,想做一個(gè)低成本的msPLC,但最后發(fā)現(xiàn)黑白字庫(kù)屏的成本下不來(lái),考慮到很多網(wǎng)友都有通用的評(píng)估板,于是想著做一個(gè)PC機(jī)端的界面,虛擬LCD屏,代替真實(shí)的LCD屏,并且采用C#來(lái)開(kāi)發(fā),這樣形成一套PC上位機(jī)的C#開(kāi)發(fā)模版,支持串口等常用功能。因?yàn)槲覜](méi)有太多的精力,群內(nèi)“Claude”恰好會(huì)一些C#,于是他負(fù)責(zé)了這個(gè)項(xiàng)目,通過(guò)短短幾個(gè)星期,給出了一個(gè)模版,我做了優(yōu)化,“南方的風(fēng)”增加了ISP功能后,形成了一個(gè)比較不錯(cuò)的上位機(jī)C#模版,取名為msMenu,真正實(shí)現(xiàn)嵌入式與PC端統(tǒng)一開(kāi)發(fā)的風(fēng)格,感謝“途客”推薦C#開(kāi)發(fā)環(huán)境“SharpDevelop”,非常好用。
msOS的開(kāi)發(fā)成功,統(tǒng)一了我公司嵌入式設(shè)備的開(kāi)發(fā),主要的幾個(gè)負(fù)責(zé)人,包括硬件負(fù)責(zé)人都在第一時(shí)間都掌握了編程技巧,通過(guò)代碼相互檢查,編碼質(zhì)量顯著提高,有效的降低了公司的軟件成本。并且硬件人員也可以輕松修改軟件,對(duì)于相對(duì)不是很復(fù)雜的軟件,硬件人員也可以參考模版完成。
我公司現(xiàn)在的人才招聘,現(xiàn)在都在群內(nèi)招聘,而通過(guò)這樣知根知底的招聘方式,有效的降低了公司經(jīng)營(yíng)的成本,人員穩(wěn)定性也大。有一位在華為工作多年的軟件高手“藍(lán)色雪狐”看中msOS的價(jià)值,加盟我公司,今后由他來(lái)負(fù)責(zé)msOS的后續(xù)應(yīng)用及推廣,開(kāi)發(fā)更多的電子設(shè)備和自動(dòng)化設(shè)備,比如火花放電加工設(shè)備和俊知的機(jī)械自動(dòng)化控制設(shè)備,目前都在開(kāi)發(fā)之中,之后把這些應(yīng)用中的經(jīng)驗(yàn)融合到msOS中,寫(xiě)成書(shū)讓更多的人受益。
msOS到今天算是告一段落,因?yàn)槎哳l機(jī)的深入研究需要FPGA技術(shù),自己設(shè)計(jì)精準(zhǔn)控制芯片,所以最近我都在學(xué)習(xí)FPGA。幸運(yùn)的是,剛開(kāi)始學(xué)習(xí),就獲得我本科大學(xué)同學(xué)的支持,他是清華研究生,一直在某著名芯片設(shè)計(jì)公司工作,當(dāng)我把我的這套思路跟他講了之后,他非常認(rèn)同,希望能在FPGA上建立一套通用的編程模版,暫時(shí)取名叫msFPGA吧,若開(kāi)發(fā)完成后,爭(zhēng)取實(shí)現(xiàn)開(kāi)源共享。
msOS從一開(kāi)始,就獲得我公司眾多高手的支持,后來(lái)廣大網(wǎng)友參與進(jìn)來(lái),讓msOS快速成長(zhǎng),目前QQ群已經(jīng)接近1000人滿員,這個(gè)速度還是基本上沒(méi)有做規(guī)模推廣下獲得的,因?yàn)槲蚁胫饕靠诒畞?lái)傳遞。
評(píng)論