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

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

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

英創(chuàng)信息技術(shù)嵌入式Linux工控板EM9160介紹

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

I2C總線是一種2線制的主從通訊協(xié)議,主要運(yùn)用于器件之間的數(shù)據(jù)通訊,在嵌入式系統(tǒng)中得到非常廣泛的應(yīng)用。作為一款高性價比的嵌入式Linux工控板,EM9160的對I2C總線提供了良好的支持,其主要特點是EM9160的16位GPIO中的任意位都可作為I2C總線的時鐘信號SCL或數(shù)據(jù)地址信號SDA,這樣客戶可根據(jù)自己整機(jī)的具體情況,靈活的配置EM9160的GPIO管腳來作為I2C總線信號。

在Linux環(huán)境,I2C的驅(qū)動程序已自動加載,其設(shè)備文件名為“/dev/em9x60_i2c”。應(yīng)用程序通過3個IOCTL命令來操作I2C接口:首先需要配置I2C總線資源,包括SCL、SDA信號和通訊速度,然后才能根據(jù)具體芯片的特性對其內(nèi)部寄存器進(jìn)行讀寫操作。以下以電力智能終端中廣泛使用的RTC芯片RX-8025為例,對I2C的操作流程作進(jìn)一步的介紹。

硬件電路:RX-8025是一種帶I2C總線接口的實時時鐘(RTC)芯片,具有精確調(diào)整的晶體頻率,可滿足電力智能終端需求。在下圖中,EM9160的GPIO6作為I2C總線的SCL信號、GPIO7作為SDA信號,注意10K上拉是必須的。

I2C總線配置:PWM調(diào)用函數(shù)fd=open(”/dev/em9x60_i2c”, O_RDWR)打開設(shè)備文件后,首先需要配置總線,具體操作是把參數(shù)設(shè)置到指定的數(shù)據(jù)結(jié)構(gòu)中,再調(diào)用IOCTL命令如下:

struct i2c_config config; //定義在em9x60_drivers.h
config.scl_gpio_num = GPIO6; //GPIO6作為SCL,定義見em9x60_drivers.h
config.sda_gpio_num = GPIO7; //GPIO7作為SCL
config.speed = 0; //=0:正常速度;=1:高速;=2:全速

I2C總線的速度指波特率,=0是最通常的速度,大約200kbps,可用于大多數(shù)RTC、AD芯片;=1:高速時指波特率接近400kbps;=2:全速的波特率可高達(dá)1Mbps,主要用于存儲器類型的芯片。設(shè)置操作如下:

rc = ioctl(fd, EM9X60_I2C_IOCTL_CONFIG, &config);

I2C數(shù)據(jù)寫:EM9160的I2C總線寫操作,由數(shù)據(jù)結(jié)構(gòu)struct i2c_io來傳遞參數(shù)和數(shù)據(jù),具體定義可查看em9x60_drivers.h。寫操作支持一次最多可寫入16個字節(jié),但具體寫入多少還受I2C器件本身的限制,如RX-8025只支持一次對一個寄存器寫入,例如寫入30秒到RTC的秒寄存器的具體代碼操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定義在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定義在RX-8025.h
io_info.data_len = 1; //1個字節(jié)
io_info.data_buf[0] = 0x30; //注意是BCD碼
rc = ioctl(fd, EM9X60_I2C_IOCTL_WRITE, &in_info); //執(zhí)行寫操作

I2C數(shù)據(jù)讀:EM9160的I2C總線讀操作,由數(shù)據(jù)結(jié)構(gòu)struct i2c_io來傳遞參數(shù)和數(shù)據(jù),具體定義可查看em9x60_drivers.h。讀操作支持一次最多可寫入16個字節(jié),但具體一次讀出多少字節(jié)還受I2C器件本身的限制,RX-8025支持一次讀出多個寄存器的數(shù)據(jù),例如一次讀取全部日期時間信息共7個字節(jié),具體代碼操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定義在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定義在RX-8025.h
io_info.data_len = 7; //7個字節(jié)
rc = ioctl(fd, EM9X60_I2C_IOCTL_READ, &in_info); //執(zhí)行讀操作

I2C數(shù)據(jù)讀寫所用的數(shù)據(jù)結(jié)構(gòu)中,reg_addr表示被讀寫器件的寄存器地址,若為單字節(jié)地址,該變量的最高位(MSB = D31)應(yīng)為0;若為雙字節(jié)地址,地址占用reg_addr的D15 - D0(最低位,LSB),而變量的最高位D31必須置為1。另外,對不需要寄存器的器件,可把reg_addr設(shè)置為0xFFFFFFFF,這時驅(qū)動程序?qū)⒉辉侔l(fā)送寄存器地址。上述代碼中從RX-8025讀出的數(shù)據(jù)均為BCD,通常需要轉(zhuǎn)換成C語言的整型數(shù)據(jù)類型。

為了方便客戶使用RX-8025,我們編寫了通過EM9160的I2C驅(qū)動程序操作RTC的范例程序,包括啟動RTC,設(shè)置時間,讀取時間等功能。感興趣的客戶可向英利公司技術(shù)支持索取范例源碼。

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

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129473
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209498
收藏 人收藏

    評論

    相關(guān)推薦

    無風(fēng)扇嵌入式工控機(jī)特點

    隨著信息技術(shù)的飛速發(fā)展和工業(yè)自動化程度的不斷提高,工業(yè)控制領(lǐng)域?qū)?b class='flag-5'>嵌入式工控機(jī)的需求日益增加。無風(fēng)扇嵌入式工控機(jī)作為這一領(lǐng)域的重要組成部分,因
    的頭像 發(fā)表于 11-18 15:16 ?235次閱讀
    無風(fēng)扇<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>機(jī)特點

    嵌入式工控機(jī)如何使用?嵌入式工控機(jī)操作方法及注意事項

    嵌入式工控機(jī)作為現(xiàn)代工業(yè)自動化和控制系統(tǒng)中重要的硬件支持,廣泛應(yīng)用于生產(chǎn)線監(jiān)控、軌道交通、電力能源等多個領(lǐng)域。其穩(wěn)定性、可靠性以及適應(yīng)惡劣環(huán)境的能力,使其成為許多行業(yè)的首選。那么,嵌入式工控
    的頭像 發(fā)表于 10-18 10:02 ?331次閱讀

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動開發(fā)、應(yīng)用程序開發(fā)等多個方面。以下是嵌入式Linux開發(fā)的基本步驟,以及每個步驟的說明。 硬件選擇 在開始
    的頭像 發(fā)表于 09-02 09:11 ?495次閱讀

    嵌入式linux開發(fā)怎么操作

    嵌入式Linux開發(fā)是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺。它通常包括一個處理器、內(nèi)存、存儲器、輸入/輸出接口等硬件組件,以及一
    的頭像 發(fā)表于 09-02 09:09 ?391次閱讀

    嵌入式linux開發(fā)芯片的工作原理

    嵌入式Linux開發(fā)是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺,它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。
    的頭像 發(fā)表于 09-02 09:07 ?392次閱讀

    飛凌嵌入式技術(shù)創(chuàng)新日(深圳站)精彩回顧

    工的分享,則更加側(cè)重于嵌入式技術(shù)的研發(fā)和創(chuàng)新,為與會者提供了新的問題解決思路;最后,粵港澳大灣區(qū)國創(chuàng)中心技術(shù)專家的溫老師 介紹了openEu
    發(fā)表于 08-28 09:06

    聚徽-嵌入式工控機(jī)是如何散熱的

    嵌入式工控機(jī)散熱主要依賴于以下幾種方式:
    的頭像 發(fā)表于 08-14 09:21 ?354次閱讀

    聚徽-嵌入式工控機(jī)在性能方面有什么優(yōu)勢

    嵌入式工控機(jī),亦被稱為 Box 整機(jī)或 Embedded Industrial Computer,是專為工業(yè)現(xiàn)場環(huán)境打造的緊湊型計算機(jī)。與普通工控機(jī)相比,嵌入式
    的頭像 發(fā)表于 08-13 09:25 ?336次閱讀

    嵌入式工控一體機(jī)的安裝方法和使用注意事項?

    客戶咨詢嵌入式工控一體機(jī)的安裝問題和維護(hù)問題,本文中為大家介紹一下嵌入式工控一體機(jī)的安裝方法和使用注意事項。
    的頭像 發(fā)表于 08-04 11:12 ?1213次閱讀

    聚徽觸控-嵌入式工控機(jī)與傳統(tǒng)工控機(jī)有什么不同

    嵌入式工控機(jī)得到了飛速的發(fā)展,其應(yīng)用領(lǐng)域也愈發(fā)廣泛。在某些行業(yè)和場景中,傳統(tǒng)的工控機(jī)已經(jīng)被新型的嵌入式工控機(jī)所替代。如今,
    的頭像 發(fā)表于 07-24 09:31 ?404次閱讀

    什么是嵌入式工控機(jī)?它有哪些特點?

    隨著工業(yè)自動化程度的不斷提高,嵌入式工控機(jī)作為工業(yè)控制領(lǐng)域的重要設(shè)備,其地位和作用日益凸顯。嵌入式工控機(jī)以其獨(dú)特的設(shè)計理念和卓越的性能特點,在工業(yè)控制、智能制造等領(lǐng)域發(fā)揮著重要作用。本
    的頭像 發(fā)表于 06-11 17:58 ?1323次閱讀

    基于AMD、ARM、Intel和NVIDIA技術(shù)構(gòu)建的嵌入式工控機(jī)

    嵌入式工控機(jī)具有高度可定制性,可以滿足所有行業(yè)的所有邊緣計算任務(wù)。在AMD、ARM、Intel和NVIDIA等領(lǐng)先技術(shù)公司的支持下,我們擁有適用于所有工業(yè)應(yīng)用的全系列經(jīng)過預(yù)審的嵌入式
    的頭像 發(fā)表于 05-22 17:13 ?550次閱讀
    基于AMD、ARM、Intel和NVIDIA<b class='flag-5'>技術(shù)</b>構(gòu)建的<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>機(jī)

    嵌入式工控機(jī)是什么?嵌入式工控機(jī)有哪些特點?技術(shù)特點是什么?

    ? ? ? ?嵌入式工控機(jī)是一種由工業(yè)設(shè)備生產(chǎn)的特殊單板計算機(jī),就像個人計算機(jī)切片的功能一樣,專門為某個行業(yè)設(shè)計。嵌入式工業(yè)計算機(jī)主要用于銀行,工業(yè)智能設(shè)備和其他需要高可靠性和穩(wěn)定性的領(lǐng)域。
    的頭像 發(fā)表于 04-12 08:47 ?436次閱讀

    嵌入式工控機(jī)性能特點 嵌入式工控機(jī)應(yīng)用場景

    嵌入式工控機(jī)性能特點 嵌入式工控機(jī)應(yīng)用場景 嵌入式工控機(jī)是一種專門設(shè)計用于工業(yè)控制系統(tǒng)的計算機(jī)設(shè)
    的頭像 發(fā)表于 02-04 11:35 ?692次閱讀

    嵌入式工控機(jī)與傳統(tǒng)工控機(jī)的區(qū)別

    嵌入式工控機(jī)與傳統(tǒng)工控機(jī)的區(qū)別? 嵌入式工控機(jī)和傳統(tǒng)工控機(jī)是兩種不同類型的工業(yè)控制計算機(jī)設(shè)備,雖
    的頭像 發(fā)表于 02-04 11:35 ?685次閱讀