接觸過(guò)傳感器整合到嵌入式系統(tǒng)的人都知道,連接和獲取來(lái)自傳感器的數(shù)據(jù)并不總是直線前進(jìn)或那么容易,以下有5個(gè)技巧以協(xié)助緩解工程師與傳輸接口到傳感器的第一次戰(zhàn)爭(zhēng)。
方法1:先從總線工具開(kāi)始
第一步,工程師應(yīng)當(dāng)采取首次介接到傳感器時(shí),是透過(guò)一個(gè)總線工具的方式以限制未知。一個(gè)總線工具連接一臺(tái)個(gè)人計(jì)算機(jī)(PC),然后到傳感器的I2C、 SPI或其他可讓傳感器可以“說(shuō)話”的協(xié)議。與總線工具相關(guān)的PC應(yīng)用程序,提供了一個(gè)已知與工作來(lái)源用以發(fā)送和接收數(shù)據(jù),且不是未知、未經(jīng)認(rèn)證的嵌入式微控制器(MCU)驅(qū)動(dòng)程序。在總線工具的工作環(huán)境下,開(kāi)發(fā)人員可以傳送和接收訊息以得到該部分如何運(yùn)作的理解,在試圖于嵌入式等級(jí)操作之前。
方法2:Python編寫(xiě)傳輸接口碼
一旦開(kāi)發(fā)者已嘗試使用總線工具的傳感器,下一步就是為傳感器編寫(xiě)應(yīng)用程序代碼。并非直接跳到微控制器的代碼,而是在Python編寫(xiě)應(yīng)用程序代碼。許多總線 工具在編寫(xiě)腳本(writing scripts)配置了插件(plug-in)和范例碼,Python通常是隨著.NET中可用的語(yǔ)言之一。在Python編寫(xiě)應(yīng)用程序是快速且容易的, 其并提供一個(gè)方法已在應(yīng)用程序中測(cè)試傳感器,這個(gè)方式并未如同在嵌入式環(huán)境測(cè)試的復(fù)雜。擁有高層級(jí)的代碼,將使非嵌入式工程師易于挖掘傳感器的腳本及測(cè) 試,而不需要一個(gè)嵌入式軟件工程師的照看。
方法3:以Micro Python測(cè)試傳感器
在Python寫(xiě)下第一段應(yīng)用程序代碼的其中一個(gè)優(yōu)勢(shì)是,透過(guò)調(diào)用Micro Python,應(yīng)用程序調(diào)用到總線工具應(yīng)用程序編程接口(API)可易于進(jìn)行更換。Micro Python運(yùn)作在實(shí)時(shí)嵌入式軟件內(nèi),其中有許多傳感器可供工程師來(lái)了解其價(jià)值,Micro Python運(yùn)作在一個(gè)Cortex-M4處理器,且其是一個(gè)很好的環(huán)境,以從中為應(yīng)用程序代碼除錯(cuò)。不僅是簡(jiǎn)單的,這里也不需要去寫(xiě)I2C 或SPI驅(qū)動(dòng)程序,因?yàn)樗鼈円驯缓w在Micro Python的函式庫(kù)中。
方法4:利用傳感器供貨商代碼
任何可以從傳感器制造商“搜括”到的范例碼,工程師需要走一段很長(zhǎng)的路才能了解傳感器如何工作的原理。不幸的是,許多傳感器供貨商并非嵌入式軟件設(shè)計(jì)的專家,因此不要期待可以發(fā)現(xiàn)一個(gè)可投入生產(chǎn)的漂亮架構(gòu)和優(yōu)雅的例子。就使用供貨商代碼,學(xué)習(xí)這部分如何運(yùn)作,之后重構(gòu)的挫折感將出現(xiàn),直到它可以被干凈利索地整合到嵌入式軟件。它可能如“意大利面條般(spaghetti)”開(kāi)始,但利用制造商對(duì)其傳感器如何運(yùn)作的理解,在產(chǎn)品推出之前,將有助于減少許多得 被毀掉的周末時(shí)間。
方法5:使用一個(gè)傳感器融合函式庫(kù)
機(jī) 會(huì)是,傳感器的傳輸接口并不是太新,且先前沒(méi)有人這么做過(guò)。已知的所有函式庫(kù),如由許多芯片制造商提供的“傳感器融合函式庫(kù)”,以協(xié)助開(kāi)發(fā)人員快速掌握、 甚至更好,更可避免他們陷入重新開(kāi)發(fā)或大幅修改產(chǎn)品架構(gòu)的輪回。許多傳感器可以被整合至一般類型或類別,而這些類型或類別將使驅(qū)動(dòng)程序順利被開(kāi)發(fā),若處理得當(dāng),幾乎是普遍或是少可重復(fù)使用。尋找這些傳感器融合函式庫(kù),并學(xué)習(xí)它們的優(yōu)點(diǎn)和短處。
寫(xiě)在最后
感測(cè)器被整合至嵌入式系統(tǒng)時(shí),有許多方式可以幫助提高設(shè)計(jì)時(shí)程和易用性。開(kāi)發(fā)者在開(kāi)始設(shè)計(jì)時(shí),透過(guò)一個(gè)高層次抽象概念,以及在把傳感器整合進(jìn)一個(gè)較低等級(jí)的 系統(tǒng)之前,學(xué)習(xí)傳感器如何運(yùn)作,就絕對(duì)不會(huì)“走錯(cuò)路”。今天存在的眾多資源將可協(xié)助開(kāi)發(fā)人員“旗開(kāi)得勝”,而無(wú)須從頭開(kāi)始。