日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 糖果Autosar
[導(dǎo)讀]一感慨近公司新招了一個(gè)做嵌入式軟件開(kāi)發(fā)開(kāi)發(fā)的童鞋,該童鞋是從上海的某一個(gè)上市公司出來(lái)的,因?yàn)槲覀冞@邊人手不夠,因此把他安排了去負(fù)責(zé)一個(gè)新產(chǎn)品的研發(fā),前期讓他負(fù)責(zé)加速度計(jì)、NB-IOT、舵機(jī)、外置Flash的功能測(cè)試,測(cè)試完成之后,準(zhǔn)備讓他做一個(gè)該產(chǎn)品的概要設(shè)計(jì)。然后他花了2個(gè)星期...

一 感慨

近公司新招了一個(gè)做嵌入式軟件開(kāi)發(fā)開(kāi)發(fā)的童鞋,該童鞋是從上海的某一個(gè)上市公司出來(lái)的,因?yàn)槲覀冞@邊人手不夠,因此把他安排了去負(fù)責(zé)一個(gè)新產(chǎn)品的研發(fā),前期讓他負(fù)責(zé)加速度計(jì)、NB-IOT、舵機(jī)、外置Flash的功能測(cè)試,測(cè)試完成之后,準(zhǔn)備讓他做一個(gè)該產(chǎn)品的概要設(shè)計(jì)。然后他花了2個(gè)星期的時(shí)間,給我們寫(xiě)出來(lái)一個(gè)概要設(shè)計(jì),說(shuō)實(shí)話,我看到這個(gè)概要設(shè)計(jì),我就覺(jué)得是剛畢業(yè)的大學(xué)生寫(xiě)的。

版本一的架構(gòu)設(shè)計(jì)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

2.1系統(tǒng)體系結(jié)構(gòu) ? ? ? ?

系統(tǒng)分為兩層:硬件驅(qū)動(dòng)層、應(yīng)用層。 ? ? ? ?

2.1.1硬件驅(qū)動(dòng)層 ? ? ? ?

硬件驅(qū)動(dòng)層包含板載硬件資源正常運(yùn)行所需的所有驅(qū)動(dòng)程序。 ? ? ? ?

1)MCU初始化 ? ? ? ?

2)I2C數(shù)據(jù)存取 ? ? ? ?

3)SPI數(shù)據(jù)讀取 ? ? ? ?

4)加速度計(jì)初始化 ? ? ? ?

5)藍(lán)牙模塊啟動(dòng) ? ? ? ?

6)BC95模塊啟動(dòng) ? ? ? ?

7)485通訊模塊啟動(dòng) ? ? ? ?

2.2.2應(yīng)用層 ? ? ? ?

1)Mcu運(yùn)行模式切換 ? ? ? ?

2)震動(dòng)及傾斜 ? ? ? ?

3)數(shù)據(jù)解析 ? ? ? ?

4)開(kāi)/關(guān)鎖 ? ? ? ?

5)數(shù)據(jù)發(fā)送 ? ? ? ?

6)歷史數(shù)據(jù)保存 ? ? ? ?

看到版本一的架構(gòu)設(shè)計(jì)之后,說(shuō)實(shí)話,我還是第一次見(jiàn)到這樣來(lái)寫(xiě)架構(gòu)設(shè)計(jì)的,居然是以序號(hào)來(lái)寫(xiě)的,這個(gè)讓別人讀起來(lái),特別的別扭?! ?/p>版本二的架構(gòu)設(shè)計(jì)

看到版本二的架構(gòu)設(shè)計(jì)之后,雖然頗感欣慰,但是想到達(dá)到我們所要求的,還要很大的一段距離,該架構(gòu)設(shè)計(jì),主要有以下幾點(diǎn)問(wèn)題:

1.對(duì)架構(gòu)的理解還不是很清晰,既然是做架構(gòu)設(shè)計(jì),那就應(yīng)該從整體來(lái)看,而不是僅僅只是局限于一個(gè)模塊,或者功能里面。

2.還是每個(gè)層次的理解也還不是很清晰,比如講MCU的初始化,歸于硬件驅(qū)動(dòng)層里面。MCU的初始化,嚴(yán)格意義上來(lái)說(shuō),是屬于流程的一部分了,而不是驅(qū)動(dòng)。比如電腦的開(kāi)啟啟動(dòng),把這個(gè)歸于硬件的驅(qū)動(dòng)里面,肯定是屬于牛頭不對(duì)馬嘴的。

3.還有就是各個(gè)模塊的啟動(dòng),也是不能屬于硬件驅(qū)動(dòng)層的,也都是業(yè)務(wù)流程的一部分了,都不應(yīng)該屬于驅(qū)動(dòng)層的一部分。

4.還有就是總線數(shù)據(jù)的讀寫(xiě),雖然驅(qū)動(dòng)的作用也就是讀寫(xiě),但是數(shù)據(jù)總線的讀寫(xiě)不能寫(xiě)成硬件驅(qū)動(dòng)。

5.應(yīng)用層的系統(tǒng)參數(shù)初始化,也還是屬于流程。

6.數(shù)據(jù)的解析和數(shù)據(jù)的發(fā)生,都是屬于通信功能里面的,不應(yīng)該單獨(dú)獨(dú)立出來(lái),屬于單個(gè)的應(yīng)用。

?看到這里之后,說(shuō)實(shí)話,我真的很驚訝,難倒從大企業(yè)出來(lái)的童鞋,能力都是這樣的嗎?從大企業(yè)出來(lái)的童鞋們,工資也是要的老高老高的,難倒他們不知道,在昆明的工資,都是以K來(lái)計(jì)算的嗎?在昆明能拿到8K的工資做開(kāi)發(fā)的人就已經(jīng)很少了。然后再到1W

以上的,童鞋們就更少了。

說(shuō)實(shí)話,我們的這位童鞋,上班的時(shí)候,還經(jīng)??措娮訒?shū),在實(shí)習(xí)期間還經(jīng)??措娮訒?shū),我不知道,他哪來(lái)的實(shí)力,心可以放的這么寬,交代的活沒(méi)有完成,還有時(shí)間來(lái)看電子書(shū)。當(dāng)然托他的福,我的工資也終于漲到6K了,因?yàn)樾氯说墓べY,比老人高,

做的活還是一樣的(結(jié)果一不一樣我就知道了),為了考慮到老人的心里面不平衡,所以才給我加的工資的。領(lǐng)導(dǎo)們?cè)谂庸べY的申請(qǐng)的時(shí)候,還專(zhuān)門(mén)把我叫去辦公室,讓我表決心啥的。。然后,我讓他去改,把我說(shuō)的這些改改,然后再看一下,還有什么問(wèn)題沒(méi)?結(jié)果我看他在那抓耳撓腮,還有各種嘆氣,然后和我說(shuō),改不了。

既然改不了,那我就只能親自操刀上陣了,畢竟同事一場(chǎng)。

二、基本框架圖

(1)架構(gòu)設(shè)計(jì)的目的

1、應(yīng)用的代碼邏輯清晰,且避免重復(fù)的造輪子。

2、如果沒(méi)有好的架構(gòu),移植將會(huì)是一件很痛苦的事情,因此一個(gè)好的架構(gòu)設(shè)計(jì),方便軟件的移植。

3、最大限度的復(fù)用。

4、高耦合低內(nèi)聚。

(2)設(shè)計(jì)思路

如何把硬件的驅(qū)動(dòng)和一個(gè)功能封裝成一個(gè)個(gè)的模塊,然后可以像小朋友搭積木一個(gè),一個(gè)個(gè)模塊可以快速的拼接起來(lái),組成一個(gè)個(gè)不同的模型。我們的嵌入式架構(gòu)思路也是來(lái)源于此,即功能模塊化設(shè)計(jì)、分層設(shè)計(jì)。這個(gè)設(shè)計(jì)和WEB開(kāi)發(fā)的MVC模式類(lèi)似,都是注重分層設(shè)計(jì)。

模塊化設(shè)計(jì):將收集到的需求,進(jìn)行歸類(lèi),總結(jié)和分析,將這些需求概括為一個(gè)個(gè)單獨(dú)的功能,每一個(gè)功能,做成一個(gè)單獨(dú)的功能模塊。

分層設(shè)計(jì)一句話不好直接表達(dá),其主要體現(xiàn)在一下幾方面:

1、功能模塊對(duì)外調(diào)用的模塊封裝成一個(gè)個(gè)API,將底層驅(qū)動(dòng)做個(gè)API以供功能模塊調(diào)用。(各個(gè)功能模塊可以獨(dú)立編譯(如通信模塊純ANSI C,可在任意平臺(tái)復(fù)用),或者調(diào)用驅(qū)動(dòng)層接口(日志庫(kù)模塊調(diào)用了驅(qū)動(dòng)讀寫(xiě)Flash),總而言之,言而總之,封裝出各個(gè)功能獨(dú)立的可復(fù)用的功能模塊。)

2、API分為驅(qū)動(dòng)層API和應(yīng)用層API,而不是所有程序都調(diào)用驅(qū)動(dòng)層API。(整個(gè)應(yīng)用中都調(diào)用驅(qū)動(dòng)層API會(huì)導(dǎo)致應(yīng)用中驅(qū)動(dòng)調(diào)用隨處可見(jiàn),無(wú)法移植和最大限度的復(fù)用)

總體分 硬件驅(qū)動(dòng)層-->功能模塊層-->業(yè)務(wù)邏輯層-->應(yīng)用層

總體結(jié)構(gòu)示意框圖:



說(shuō)明:

  • 1.層與層之間不能跨層調(diào)用。

  • 2.模塊與模塊各自獨(dú)立,無(wú)依賴(lài)關(guān)系。

  • 3.模塊提供統(tǒng)一的接口供上層調(diào)用,模塊的內(nèi)外接口分明。

  • 4.模塊的功能只能增,不能改。

  • 5.各個(gè)功能模塊層也還可以進(jìn)行繼續(xù)分層,比如接口層、驅(qū)動(dòng)層、硬件層。

(3)模塊層次說(shuō)明

  • 硬件驅(qū)動(dòng)層
硬件驅(qū)動(dòng)層包含板載硬件資源正常運(yùn)行所需的所有驅(qū)動(dòng)程序并提供API給功能模塊調(diào)用。

  • 功能模塊層
功能模塊層包括實(shí)現(xiàn)具體功能的函數(shù),通過(guò)調(diào)用驅(qū)動(dòng)層API實(shí)現(xiàn)相應(yīng)功能,同時(shí)提供可調(diào)用的API給業(yè)務(wù)邏輯層。

  • 業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層包括產(chǎn)品整體功能的各個(gè)業(yè)務(wù)流程,通過(guò)調(diào)用功能模塊層的API實(shí)現(xiàn)。

  • 應(yīng)用層
應(yīng)用層將各個(gè)業(yè)務(wù)邏輯進(jìn)行整合調(diào)用,完成整個(gè)產(chǎn)品的功能。

(4)優(yōu)勢(shì)

如果驅(qū)動(dòng)變動(dòng)了,或者換不同平臺(tái),只需更改驅(qū)動(dòng)層,應(yīng)用層不受影響。如果功能模塊變動(dòng)了,只需升級(jí)相應(yīng)的功能模塊,其他的模塊不受影響,應(yīng)用層也不受影響。按照這種邏輯設(shè)計(jì)好之后,主要的工作就是在業(yè)務(wù)邏輯層。應(yīng)用層則為程序的總體流程和框架,主要調(diào)用業(yè)務(wù)邏輯層實(shí)現(xiàn)不同的功能。

?


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉