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

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

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

英創(chuàng)信息技術(shù)JAVA操作英創(chuàng)主板SPI接口簡(jiǎn)介

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-06 11:09 ? 次閱讀

2017年9月,英創(chuàng)在Linux的文件系統(tǒng)中移植了針對(duì)嵌入式Linux的JRE(Java Runtime Environment),能夠支持Java應(yīng)用程序的運(yùn)行。由于Java語(yǔ)言不能直接訪問(wèn)硬件資源,英創(chuàng)提供了Java硬件支持包,主要支持的工控接口有:以太網(wǎng)、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介紹使用Java語(yǔ)言調(diào)用英創(chuàng)Java硬件支持包,操作英創(chuàng)主板SPI接口的過(guò)程。

1、SPI簡(jiǎn)介

SPI(Synchronous Peripheral Interface)是一種同步串行數(shù)據(jù)通訊總線接口,常用于連接ADCs、EPROMs、Sensors或者是其他一些微控制器,SPI具有兩種工作模式:master和slave模式,其中master模式提供時(shí)鐘信號(hào)。

圖1SPI主從設(shè)備信號(hào)連接

SPI有四種數(shù)據(jù)傳輸模式,如表1所示,主要差別在于:輸出串行同步時(shí)鐘極性(CPOL)和相位(CPHA)可以進(jìn)行配置。

SPI mode CPOL CPHA Comments
0 0 0 時(shí)鐘的空閑狀態(tài)為低電平;上升沿采樣
1 0 1 時(shí)鐘的空閑狀態(tài)為低電平;下降沿采樣
2 1 0 時(shí)鐘的空閑狀態(tài)為高電平;下降沿采樣
3 1 1 時(shí)鐘的空閑狀態(tài)為高電平;上升沿采樣

表1SPI四種數(shù)據(jù)傳輸模式

2、SPI傳輸數(shù)據(jù)結(jié)構(gòu)

英創(chuàng)提供的SPI傳輸數(shù)據(jù)結(jié)構(gòu)源文件為emtronix.hardware.SPITransfer.java。每一個(gè)SPITransfer類實(shí)例代表一次SPI傳輸,其主要成員變量如下所示:

public class SPITransfer {

/*寫(xiě)數(shù)據(jù)緩存,只讀模式時(shí)為null*/

public byte[] tx_buf;

/*讀數(shù)據(jù)緩存,只寫(xiě)模式時(shí)為null */

public byte[] rx_buf;

/* 緩存長(zhǎng)度

* 全雙工時(shí),讀寫(xiě)緩存應(yīng)該長(zhǎng)度相同;

* 半雙工時(shí),非工作狀態(tài)的緩存為null

*/

public int len;

/*SPI時(shí)鐘頻率*/

public int speed_hz;

/*兩個(gè)SPITransfer之間的延時(shí)*/

public char delay_usecs;

/*SPI傳輸字寬*/

public byte bits_per_word;

/*本次傳輸完成之后,是否改變片選*/

public byte cs_change;

public int pad;

}

SPI傳輸使用同步時(shí)鐘,在發(fā)送的同時(shí),也在接收數(shù)據(jù)。因此其傳輸數(shù)據(jù)結(jié)構(gòu)要同時(shí)擁有寫(xiě)數(shù)據(jù)緩存tx_buf和讀數(shù)據(jù)緩存rx_buf才能支持這種全雙工工作模式,并且兩個(gè)緩存區(qū)域長(zhǎng)度都為len字節(jié)。當(dāng)然,如果要使用半雙工讀/寫(xiě),只需要讓tx_buf/rx_buf等于null就可以了。speed_hz為SPI的時(shí)鐘頻率,esm335x最大時(shí)鐘頻率48MHz,esm6800最大時(shí)鐘頻率60MHz;delay_usecs表示連續(xù)傳輸?shù)腡ransfer之間的間隔,單位為微秒;bits_per_word表示一個(gè)字有幾個(gè)比特組成,最大32;cs_change表示本次傳輸完成后是否修改片選信號(hào);pad暫時(shí)不用設(shè)置,保留。

3、SPI傳輸接口函數(shù)

英創(chuàng)提供的SPI傳輸接口源文件為emtronix.hardware.SPI.java。用戶在實(shí)例化SPI類后可以調(diào)用Open、SetSPI、Transfer、Close對(duì)SPI硬件接口進(jìn)行操作。SPI類的具體信息如下,其中mFd為設(shè)備描述符,用戶不用設(shè)置,由接口函數(shù)自動(dòng)修改。

public class SPI {

private int mFd;

/**

*打開(kāi)spi主設(shè)備,返回fd.自動(dòng)修改mFd

*@paramdev "/dev/spidev1.0"

*@return成功返回spi主設(shè)備描述符,失敗返回-1

*/

publicnativeintOpen(String dev);

/**

*設(shè)置SPI的工作參數(shù)

*@paramargs "S16000000-M1-B16-D100" S為時(shí)鐘速率,M為數(shù)據(jù)傳輸模式(0-3),B為數(shù)據(jù)位寬,D發(fā)送完后的延時(shí)

* 四個(gè)參數(shù)之間不分順序“M1-D100-B16-S16000000”與之前的相同

*@return成功返回0;失敗返回-1

*/

publicnativeintSetSPI(String args);

/**

* SPI一次傳輸,trans.tx_buf=null,trans.rx_buf != null, only receive;

* trans.tx_buf!=null,trans.rx_buf=null,only send;

* trans.tx_buf!=null,trans.rx_buf!=null, send&receive

*@paramtrans,一次spi傳輸參數(shù)

*@paramntrans,進(jìn)行ntrans次spitransfer

*@return成功返回0;失敗返回-1

*/

publicnativeintTransfer(SPITransfer[] trans,intntrans);

/**

*關(guān)閉SPI主設(shè)備

*@return成功返回0;失敗返回-1

*/

publicnativeintClose() ;

}

4、SPI測(cè)試程序

SPI傳輸接口中操作SPI的接口函數(shù)聲明都有native的前綴,表明其實(shí)現(xiàn)部分在本地的庫(kù)當(dāng)中。英創(chuàng)將所有英創(chuàng)主板的硬件接口訪問(wèn)函數(shù)的實(shí)現(xiàn)部分編譯成了動(dòng)態(tài)鏈接庫(kù)libemtronixhardware.so,放在了文件系統(tǒng)/lib目錄下。

在編寫(xiě)SPI傳輸主程序的時(shí)候,首先需要加載該庫(kù),如下所示:

publicclasstestSPIMain {

static{

System.loadLibrary("emtronixhardware");

}

publicstaticvoidmain(String[] args) {

...

}

}

然后,就可以在main函數(shù)中實(shí)例化SPI類,并打開(kāi)主板的SPI設(shè)備:

SPI spi = new SPI();

spi.Open("/dev/spidev1.0");

接著,初始化SPI傳輸數(shù)據(jù)結(jié)構(gòu),發(fā)送數(shù)據(jù):

int transcnt = 1;

SPITransfer[] trans = new SPITransfer[transcnt];

trans[0] = new SPITransfer();

trans[0].tx_buf = tArray;

trans[0].rx_buf = rArray;

trans[0].len = bytes;

trans[0].speed_hz = speed;

trans[0].bits_per_word = (byte) bitspw;

if(spi.Transfer(trans, transcnt) == 0) {

//傳輸成功,處理數(shù)據(jù)

}

其中,transcnt表示SPITransfer的個(gè)數(shù),每一個(gè)SPITransfer需要用戶自己實(shí)例化。

最后,使用完畢后關(guān)閉SPI設(shè)備:

spi.Close();

5、SPI測(cè)試程序運(yùn)行結(jié)果

運(yùn)行SPI傳輸Java主程序需要把編譯結(jié)果bin文件中的所有目錄文件拷貝到主板/mnt/nandflash,或者通過(guò)nfs掛載到主板/mnt/nfs目錄下。然后,使用“java 包名.類名”運(yùn)行,如下圖所示:

圖2運(yùn)行SPI測(cè)試程序

以上就是使用Java操作英創(chuàng)主板SPI接口的介紹,感興趣的客戶可以通過(guò)電話或者郵件聯(lián)系英創(chuàng)工程師。我們將提供Java示例程序源碼供客戶參考。

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

    關(guān)注

    87

    文章

    11329

    瀏覽量

    209975
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35490
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?170次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?260次閱讀

    威騰CHE100變頻器原理圖

    圖紙包括:威騰變頻器電源及通訊電路騰變頻器TMS320LF2406外圍電路、威騰變頻器電流檢測(cè)電路、威騰變頻器電源及通訊電路、
    發(fā)表于 12-16 11:06 ?3次下載

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

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

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

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

    銳恩科技引領(lǐng)微控制器MCU技術(shù)創(chuàng)新,賦能多元化應(yīng)用!

    ,成為國(guó)家高新技術(shù)半導(dǎo)體企業(yè)的佼佼者。銳恩科技不僅致力于為客戶提供高可靠性、高性能、高性價(jià)比的一站式半導(dǎo)體芯片供應(yīng)服務(wù),更在8位和32位MCU市場(chǎng)不斷創(chuàng)新,推動(dòng)技術(shù)進(jìn)步與產(chǎn)品應(yīng)用拓展。
    發(fā)表于 09-29 13:40

    引領(lǐng)智能未來(lái):銳恩科技的國(guó)產(chǎn)低功耗單片機(jī)ENMCU

    在科技飛速發(fā)展的今天,低功耗單片機(jī)的應(yīng)用越來(lái)越廣泛,尤其是在安防監(jiān)控、智能家居和微波雷達(dá)照明等領(lǐng)域。作為國(guó)內(nèi)專精特新國(guó)家高新技術(shù)半導(dǎo)體企業(yè),銳恩科技致力于為客戶提供高性能、低功耗的單片機(jī)解決方案
    發(fā)表于 09-26 17:16

    銳恩科技,以實(shí)力打造國(guó)產(chǎn)單片機(jī)替代品牌!

    今天我們要介紹的深圳銳恩科技的單片機(jī)。 鑒于我國(guó)集成電路產(chǎn)業(yè)起步較晚,核心研發(fā)技術(shù)非常的短缺,導(dǎo)致了我國(guó)芯片需要依賴進(jìn)口。而可替代進(jìn)口MCU的國(guó)產(chǎn)芯片,產(chǎn)品性能必須要穩(wěn)定。 深圳銳恩科技是一國(guó)
    發(fā)表于 09-25 09:49

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

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

    中軟國(guó)際信創(chuàng)服務(wù)助力大連信創(chuàng)產(chǎn)業(yè)發(fā)展

    為進(jìn)一步激發(fā)大連本地信創(chuàng)產(chǎn)業(yè)生態(tài)的活力與潛力,搭建一個(gè)高效、開(kāi)放的交流平臺(tái)。由大連軟件行業(yè)協(xié)會(huì)攜手大連市信息技術(shù)應(yīng)用創(chuàng)新綜合服務(wù)中心主辦,中軟國(guó)際協(xié)辦的,2024年大連市信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)發(fā)展大會(huì)
    的頭像 發(fā)表于 08-27 16:49 ?923次閱讀

    通過(guò)大小鼠無(wú)創(chuàng)血壓測(cè)量實(shí)驗(yàn)明白了無(wú)創(chuàng)血壓測(cè)量技術(shù)的重要性

    無(wú)創(chuàng)血壓測(cè)量技術(shù)的重要性:無(wú)創(chuàng)血壓測(cè)量技術(shù)是一種非侵入性的測(cè)量方法,可以避免對(duì)動(dòng)物造成不必要的傷害。在醫(yī)學(xué)研究中,無(wú)創(chuàng)血壓測(cè)量
    發(fā)表于 04-22 09:40

    泰斯特承辦“聯(lián)企創(chuàng)投匯·周三會(huì)”,協(xié)同打造智能網(wǎng)聯(lián)新高地

    2024年3月27日,由市委統(tǒng)戰(zhàn)部、市工商聯(lián)主辦、武漢市高新技術(shù)產(chǎn)業(yè)協(xié)會(huì)協(xié)辦的“聯(lián)企創(chuàng)投匯·周三會(huì)”第十三期活動(dòng)在武漢英泰斯特電子技術(shù)有限公司(以下簡(jiǎn)稱“泰斯特”)成功舉辦。
    的頭像 發(fā)表于 03-29 09:50 ?533次閱讀

    創(chuàng)股份今日登陸科創(chuàng)

    山東中創(chuàng)軟件商用中間件股份有限公司(以下簡(jiǎn)稱“中創(chuàng)股份”)近日在上海證券交易所科創(chuàng)板成功上市,標(biāo)志著這家國(guó)內(nèi)知名的民營(yíng)軟件和信息技術(shù)服務(wù)企業(yè)正式進(jìn)入資本市場(chǎng),迎來(lái)全新的發(fā)展機(jī)遇。
    的頭像 發(fā)表于 03-13 14:19 ?566次閱讀

    創(chuàng)股份在上交所科創(chuàng)板上市

    山東中創(chuàng)軟件商用中間件股份有限公司(以下簡(jiǎn)稱“中創(chuàng)股份”)近日在上海證券交易所科創(chuàng)板成功上市,標(biāo)志著這家國(guó)內(nèi)知名的民營(yíng)軟件和信息技術(shù)服務(wù)企業(yè)正式進(jìn)入資本市場(chǎng),開(kāi)啟了發(fā)展的新篇章。
    的頭像 發(fā)表于 03-13 14:02 ?575次閱讀

    軟通動(dòng)力與捷創(chuàng)技術(shù)簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱“軟通動(dòng)力”)與寧波捷創(chuàng)技術(shù)股份有限公司(以下簡(jiǎn)稱“捷創(chuàng)技術(shù)”)正式簽訂戰(zhàn)略合作協(xié)議,并
    的頭像 發(fā)表于 02-03 16:35 ?1139次閱讀