0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)工控主板EM9160介紹

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 11:16 ? 次閱讀

在基于工控主板EM9160的嵌入式應(yīng)用中,經(jīng)常需要與具有SPI接口芯片或電路單元,進行數(shù)據(jù)通訊。通常情況下,我們建議采用基于GPIO的SPI通訊協(xié)議實現(xiàn)方案,其優(yōu)點是靈活性,客戶可使用任意的GPIO管腳來實現(xiàn)SPI通訊,有關(guān)這方面的技術(shù)方案的實現(xiàn),可參考英創(chuàng)網(wǎng)站的《使用GPIO控制SPI接口的AD芯片》一文。在SPI通訊中,還有一類應(yīng)用需要進行大數(shù)據(jù)量的傳輸,且要求盡可能高的波特率,這時若采用基于GPIO的方案,就可能造成占用過多的CPU資源。因此需要使用EM9160的硬件SPI接口。
EM9160的硬件SPI接口為4線制SPI,其管腳與GPIO12–GPIO15復用:

GPIO管腳 SPI接口信號 簡要說明
GPIO12 SPI_DIN 串行數(shù)據(jù)輸入
GPIO13 SPI_DOUT 串行數(shù)據(jù)輸出
GPIO14 SPI_CLK 串行數(shù)據(jù)同步時鐘輸出
GPIO15 SPI_CS# 片選控制輸出,低電平有效

為了操作硬件SPI接口,應(yīng)用程序需要打開“SPI1:”的設(shè)備文件:
HANDLEhDevice;
hDevice = CreateFile( _T('SPI1:'),
GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
return -1;
}
獲得有效的文件句柄后,就可通過DeviceIoControl(…)函數(shù)來操作SPI接口了。在EM9160的SDK中已封裝了相應(yīng)的API函數(shù),以方便應(yīng)用程序的使用。相關(guān)的數(shù)據(jù)結(jié)構(gòu)和函數(shù)定義,包括在“SPI_API.h”中:
// 定義SPI通訊參數(shù)結(jié)構(gòu)
typedef struct
{
DWORD dwCLKPolarity; // SPI時鐘極性:=0 或者 =1
DWORD dwCLKPhase; // SPI時鐘相位:=0 或者 =1
DWORD dwDataBitSize; // SPI通訊數(shù)據(jù)幀的位數(shù):8bit-16bit
DWORD dwBaudRate; // SPI通訊波特率:最高波特率為10Mbps
} SPISTATE;
盡管EM9160的硬件波特率可以高達100Mbps,但為了保證可靠傳輸,建議應(yīng)用程序把波特率控制在10Mbps以下。SPI時鐘極性dwCLKPolarity,在數(shù)據(jù)手冊中通常記為CPOL,= 0表示在沒有數(shù)據(jù)傳輸時為低電平,= 1表示沒有數(shù)據(jù)傳輸時為高電平。SPI時鐘相位dwCLKPhase,在數(shù)據(jù)手冊中通常記為CPHA,= 0表示時鐘的第一個沿更新數(shù)據(jù)、第二個沿鎖存數(shù)據(jù),= 1表示時鐘的第一個沿鎖存數(shù)據(jù)、第二個沿更新數(shù)據(jù)。下面的事宜圖,以8-bit數(shù)據(jù)為例:
CPHA = 0的SPI時序


CPHA = 1的SPI時序


SPI通訊參數(shù)設(shè)置,通過以下兩個函數(shù)實現(xiàn):
// 功能描述:設(shè)置SPI通訊參數(shù)。
// 輸入?yún)?shù) HANDLE hDevice: 運行CreateFile( _T('SPI1:'),....)函數(shù)返回的有效句柄
// SPISTATE *pSPIState: SPI通訊參數(shù)
// 返回值 = TRUE: SPI通訊參數(shù)成功。
// = FALSE: SPI通訊參數(shù)失敗。
BOOL SetSPIState( HANDLE hDevice, SPISTATE *pSPIState );

// 功能描述:獲取SPI通訊參數(shù)。
// 輸入?yún)?shù) HANDLE hDevice: 運行CreateFile( _T('SPI1:'),....)函數(shù)返回的有效句柄
// 輸出 SPISTATE *pSPIState: 獲取的SPI通訊參數(shù)
// 返回值 = TRUE: SPI通訊參數(shù)成功。
// = FALSE: SPI通訊參數(shù)失敗。
BOOL GetSPIState( HANDLE hDevice, SPISTATE *pSPIState );
在調(diào)用上述函數(shù)時,注意指針pSPIState需要初始化分配空間。在設(shè)置好SPI參數(shù)后,就可調(diào)用下面的函數(shù)進行具體的數(shù)據(jù)通訊了
// 功能描述:全雙工收發(fā)SPI數(shù)據(jù)
// 輸入?yún)?shù):
// HANDLE hDevice: 運行CreateFile( _T('SPI1:'),....)函數(shù)返回的有效句柄
// DWORD DatLength: 需收發(fā)的數(shù)據(jù)樣點長度, (DatLength * 字節(jié)數(shù)/樣點) < 1024。
// PVOID pTxBuf: 需發(fā)送的數(shù)據(jù)BUFFER,注意一個數(shù)據(jù)樣點可能占用2個字節(jié)。
// PVOID pRxBuf: 需接收的數(shù)據(jù)BUFFER,注意一個數(shù)據(jù)樣點可能占用2個字節(jié)。
// 返回值 = TRUE: SPI數(shù)據(jù)通訊成功。
// = FALSE: SPI數(shù)據(jù)通訊失敗。
BOOL SPI_FullDuplex( HANDLE hDevice,
PVOID pTxBuf,
PVOID pRxBuf,
DWORD DatLength );
在調(diào)用上述SPI函數(shù),需要注意以下事宜:
1、SPI設(shè)備驅(qū)動程序的內(nèi)部buffer缺省設(shè)置為1K字節(jié),因此每次通訊的字節(jié)數(shù)不能超過1K字節(jié),對大于8-bit的數(shù)據(jù),每個數(shù)據(jù)均按2個字節(jié)計算。
2、對8-bit的SPI傳輸,收發(fā)數(shù)據(jù)buffer的類型應(yīng)設(shè)置為UCHAR;而對9-bit – 16-bit的數(shù)據(jù)傳輸,其收發(fā)數(shù)據(jù)buffer的類型應(yīng)設(shè)置為WORD。
3、參數(shù)DatLength是以數(shù)據(jù)為單位計算的,所以若傳輸8-bit數(shù)據(jù),其最大值為1024,若傳輸8-bit以上數(shù)據(jù),其最大值為512。
4、對傳輸長度超過SPI設(shè)備驅(qū)動程序的內(nèi)部buffer長度的應(yīng)用,可通過循環(huán)多次調(diào)用來實現(xiàn)數(shù)據(jù)通訊。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35402
收藏 人收藏

    評論

    相關(guān)推薦

    工業(yè)級主板工控主板的區(qū)別?

    在工業(yè)領(lǐng)域,主板的重要性是被無限放大的。在大型工廠里日夜不停運轉(zhuǎn)的自動化生產(chǎn)線、精準控制的智能電網(wǎng)系統(tǒng)、以及在極端環(huán)境下依然穩(wěn)定采集數(shù)據(jù)的石油勘探設(shè)備,它們背后都依靠著工業(yè)級主板工控主板
    的頭像 發(fā)表于 01-02 10:01 ?45次閱讀

    國產(chǎn)工控主板有什么優(yōu)勢、特點?

    隨著國產(chǎn)工控主板的發(fā)展,國內(nèi)企業(yè)也在不斷開發(fā)新的工控主板,為了滿足國內(nèi)企業(yè)的發(fā)展需求,一些國產(chǎn)工控主板
    的頭像 發(fā)表于 11-15 10:11 ?141次閱讀

    ?什么是國產(chǎn)工控主板,國產(chǎn)工控主板的特點有哪些?

    什么是國產(chǎn)工控主板呢?國產(chǎn)工控主板是工業(yè)計算機的主板,是一種計算機系統(tǒng)的硬件設(shè)備,是專門為工業(yè)控制場景設(shè)計和生產(chǎn)的電路板。它在國內(nèi)的研發(fā)和制
    的頭像 發(fā)表于 11-07 10:29 ?208次閱讀

    國產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎

    在當今科技飛速發(fā)展的時代,信創(chuàng)產(chǎn)業(yè)正成為國家戰(zhàn)略的重要支撐。而我們的國產(chǎn)工控主板,以其卓越的性能和可靠的品質(zhì),為信創(chuàng)產(chǎn)業(yè)的發(fā)展注入強大動力。國產(chǎn)工控
    的頭像 發(fā)表于 11-06 10:29 ?252次閱讀

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?497次閱讀

    工控主板有哪些特點?

    ?工控主板是用于工業(yè)控制領(lǐng)域的專用主板,具有以下特點: 穩(wěn)定性:工控主板通常經(jīng)過嚴格的測試和優(yōu)化,具有較高的穩(wěn)定性和可靠性,能夠在惡劣的工業(yè)
    的頭像 發(fā)表于 10-10 08:55 ?330次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會)提出,目的就是要推動我們國內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?419次閱讀

    淺析安卓工控主板的優(yōu)勢

    安卓工控主板作為專為工業(yè)控制領(lǐng)域設(shè)計的硬件平臺,相較于普通商用主板,擁有諸多優(yōu)勢,以滿足工業(yè)環(huán)境對穩(wěn)定、可靠、長期運行的嚴格要求。以下是安卓工控主板
    的頭像 發(fā)表于 06-27 14:50 ?335次閱讀

    使用工控主板時該注意哪些事項?

    最近大家都在頻繁問一個問題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來講講,我們在使用工控
    的頭像 發(fā)表于 06-05 16:01 ?421次閱讀
    使用<b class='flag-5'>工控</b><b class='flag-5'>主板</b>時該注意哪些事項?

    工控主板容易出現(xiàn)故障的原因有哪些?

    最近大家都在頻繁問一個問題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來講講,我們在使用工控
    的頭像 發(fā)表于 05-17 10:57 ?390次閱讀

    工控主板的性能指標有哪些?

    工控主板是工業(yè)控制領(lǐng)域中的關(guān)鍵組成部分,它承載著工控系統(tǒng)的核心功能。因此,工控主板的性能指標是評估其質(zhì)量和性能的重要標準。本文將
    的頭像 發(fā)表于 05-10 16:27 ?915次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>的性能指標有哪些?

    工控主板和普通主板的區(qū)別有哪些

    工控主板和普通主板是兩種在計算機硬件領(lǐng)域中常見的主板類型,它們在設(shè)計、功能和用途上有著明顯的區(qū)別。工控
    的頭像 發(fā)表于 04-25 16:54 ?1324次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>和普通<b class='flag-5'>主板</b>的區(qū)別有哪些

    誰說工控機必須得是大的? 一款小型工控機——IPC-3100!

    集特智能小型工控機IPC-3100介紹
    的頭像 發(fā)表于 04-17 14:34 ?450次閱讀
    誰說<b class='flag-5'>工控</b>機必須得是大的? 一款小型<b class='flag-5'>工控</b>機——IPC-3100!

    購買工控主板的三大誤區(qū)

    最近有很多人問我什么樣的工控主板算好的,有沒有一個統(tǒng)一的標準。工控主板作為整機的核心組成部分,在性能穩(wěn)定上有著至關(guān)重要的作用,那今天小編就來給大家講解一下在購買
    的頭像 發(fā)表于 04-16 16:40 ?362次閱讀

    電纜驅(qū)動傳感器儀表PT420-0040-111-1110介紹

    電子發(fā)燒友網(wǎng)站提供《電纜驅(qū)動傳感器儀表PT420-0040-111-1110介紹.pdf》資料免費下載
    發(fā)表于 04-11 09:07 ?0次下載