国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

英創(chuàng)信息技術(shù)工控主板快速GPIO操作介紹

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-17 09:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

英創(chuàng)公司EM928x系列和EM335x系列的工控主板均有32位GPIO0 – GPIO31并且為可獨立方向可設(shè)置的通用數(shù)字IO,所有GPIO的上電初始狀態(tài)均為輸入狀態(tài)帶上拉電阻。所以在初始化狀態(tài)下,每位GPIO管腳所呈現(xiàn)的電平均為高電平。面對豐富的GPIO資源,許多客戶希望將GPIO利用起來做一下其他的應用,比如模擬SPI接口I2C接口,以及一些總線時序等,下面就來看看GPIO的操作。

常規(guī)的GPIO操作在英創(chuàng)公司的主板使用手冊中已經(jīng)有了較為詳細的介紹,下面將主要的步驟例舉出來:

首先需要打開GPIO的設(shè)備文件:
fd = open('/dev/em335x_gpio', O_RDWR);

然后根據(jù)英創(chuàng)公司提供的接口即可實現(xiàn)對GPIO的操作:
rc = GPIO_OutEnable(fd, 0xffffffff); //使能GPIO
if(rc < 0)
{
printf('GPIO_OutEnable::failed %d\n', rc);
return rc;
}
rc = GPIO_OutClear(fd, GPIO0); //拉低GPIO
if(rc < 0)
{
printf('GPIO_OutClear::failed %d\n', rc);
return rc;
}

這樣通過調(diào)用驅(qū)動,實現(xiàn)了對GPIO的控制,但是調(diào)用驅(qū)動就存在用戶空間和內(nèi)核空間的數(shù)據(jù)傳輸,還會涉及到系統(tǒng)調(diào)度的問題,所以當我們執(zhí)行一次置低置高的操作,經(jīng)測試,大概會用掉2.5μs,波形如下圖:

通過驅(qū)動程序操作GPIO的波形

對于一般的應用來說,通過驅(qū)動來操作GPIO已經(jīng)能夠滿足需求,直接使用英創(chuàng)公司封裝好的接口函數(shù),即可實現(xiàn)對應用程序的開發(fā)。但是當需要用GPIO做實時性要求較高的應用時,簡單的通過驅(qū)動來控制GPIO可能就無法實現(xiàn),比如需要用GPIO來模擬某種時序,調(diào)用驅(qū)動來操作可能就會讓時序的一個周期過長,無法滿足時序的要求。

針對這種情況,英創(chuàng)公司為客戶提供了一種更快速的GPIO 操作方法,即通過內(nèi)存映射的方法來操作GPIO,使用mmap()函數(shù)將GPIO的硬件地址映射到進程地址空間,實現(xiàn)對內(nèi)存物理地址的讀寫,直接控制GPIO的寄存器,這是一種直接操作硬件的方式,避免了用戶進程和內(nèi)核進程的數(shù)據(jù)交換,極大地提升了效率。

首先將/dev/mem/設(shè)備文件中GPIO的地址映射到用戶進程空間的代碼:
void *GPIO_MMAP::gpio_em335x_pin_config(unsigned int BASE)
{
int mem_fd;
void *base;
mem_fd = open('/dev/mem', O_RDWR|O_SYNC);
printf('mem_fd is %d\n', mem_fd);
/* mmap GPIO */
base = mmap(
NULL,//起始地址
GPIO_DEV_SIZE, //映射的文件內(nèi)容的大小
PROT_READ|PROT_WRITE,// 映射區(qū)域可讀可寫
MAP_SHARED,//映射區(qū)域的寫入數(shù)據(jù)會寫回到原來的文件
mem_fd,
BASE//被映射的硬件地址
);
close(mem_fd);
return base;
}

成功執(zhí)行時,mmap()函數(shù)返回被映射區(qū)的指針。普通文件被映射到進程地址空間后,進程可以像訪問普通內(nèi)存一樣對文件進行訪問,不必再調(diào)用read(),write()等操作。只需要使用返回的地址指針在對應的寄存器的偏移地址賦值,就可以完成操作。在例程中已經(jīng)將函數(shù)接口引出(詳細的代碼請參考例程):
GPIO.GPIO_OutEnable(GPIO0);//輸出使能
GPIO.GPIO_OutClear(GPIO0);//置為低電平
GPIO.GPIO_OutSet(GPIO0);//置為高電平

通過這樣的方式實現(xiàn)GPIO操作,時序圖如下:

用過內(nèi)存映射操作的GPIO時序

可以看到,置低置高的操作只用了220ns左右,相比調(diào)用驅(qū)動程序所需要的2.5μs,大大的提升了效率,也已經(jīng)達到了實時操作的要求。下面來看一個實際的例子,使用GPIO模擬HPI接口的寫時序,HPI是一個與主機通信的并行接口,主要用于DSP與其他總線或CPU進行通信,在工業(yè)控制中,HPI接口是很常用的,所以我們就用HPI接口的時序作為例子,下面這個HPI時序有16位數(shù)據(jù)線和12位地址線:

HPI寫時序圖

時序要求

我們使用30位GPIO來模擬這個時序,將GPIO0~GPIO15作為16為數(shù)據(jù)線,GPIO16~GPIO28作為12為地址線,而GPIO28作為片選,GPIO29作為讀寫控制信號。基本的思路流程為:
①將片選,讀寫信號和地址線置為輸出,并且為高電平。數(shù)據(jù)線置為輸入。
②將數(shù)據(jù)線的寄存器置為需要的值。
③將數(shù)據(jù)線置為輸出。
④拉低讀寫信號線,再拉低片選。
⑤這里可以根據(jù)時序要求做一點延時,拉高片選,拉高讀寫信號,再將數(shù)據(jù)線置為輸入。

按照這樣操作就基本完成了一次要求的寫時序,實現(xiàn)的程序代碼

int GPIO_Write(unsigned int AddrBits, unsigned int DataBits)
{
unsigned int DSetBits,DClearBits;
unsigned int ASetBits,AClearBits;
ASetBits= (AddrBits << 16) & 0x0fff0000 ;  // 地址位為1的位
AClearBits= ~ASetBits ^ 0xf000ffff ;//地址位為0的位
printf('0x0%x\n',AClearBits);
GPIO.GPIO_OutSet(ASetBits);
GPIO.GPIO_OutClear(AClearBits);
DSetBits= DataBits & 0x0000ffff ;//數(shù)據(jù)位為1的位
DClearBits= ~DSetBits ^ 0xffff0000 ;//數(shù)據(jù)位為0的位

GPIO.GPIO_OutSet(DSetBits);
GPIO.GPIO_OutClear(DClearBits);
GPIO.GPIO_OutEnable(0x0000ffff);//設(shè)置數(shù)據(jù)線為輸出

GPIO.GPIO_OutClear(GPIO29);//讀寫信號
GPIO.GPIO_OutClear(GPIO28);//將片選拉低

GPIO.GPIO_OutSet(GPIO28);//將片選拉高
GPIO.GPIO_OutSet(GPIO29);//讀寫信號

GPIO.GPIO_OutDisable(0x0000ffff);//設(shè)置數(shù)據(jù)線為輸入

return 1;
}

執(zhí)行程序,可以看到片選和讀寫信號的時序為:

片選和讀寫信號的時序

可以看到一次寫操作的時間大約在1.25μs,如果是調(diào)用驅(qū)動程序控制GPIO來實現(xiàn)這個時序的模擬,那效率就會變低,詳細的代碼請參考例程。

注意事項:我們推薦客戶直接使用例程中引出的接口進行操作,不推薦客戶對硬件訪問這一部分代碼進行修改,以免在操作的時候出現(xiàn)無法預估的錯誤。

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

    關(guān)注

    7

    文章

    6107

    瀏覽量

    37071
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    創(chuàng)產(chǎn)業(yè)駛?cè)肟燔嚨溃瑖a(chǎn)工控主板成自主可控關(guān)鍵支撐

    當前,我國信創(chuàng)產(chǎn)業(yè)規(guī)模大幅突破,信息技術(shù)應用創(chuàng)新產(chǎn)業(yè)迎來高速發(fā)展期。發(fā)展信創(chuàng),早已超越單純的技術(shù)升級范疇,成為保障國家信息安全、推動經(jīng)濟高質(zhì)
    的頭像 發(fā)表于 03-04 14:18 ?30次閱讀
    信<b class='flag-5'>創(chuàng)</b>產(chǎn)業(yè)駛?cè)肟燔嚨溃瑖a(chǎn)<b class='flag-5'>工控</b><b class='flag-5'>主板</b>成自主可控關(guān)鍵支撐

    創(chuàng)國產(chǎn)化引領(lǐng)丨康仕攜手龍芯打造信創(chuàng)國產(chǎn)化工控全場景解決方案

    基于龍芯平臺的國產(chǎn)化工控產(chǎn)品矩陣已全面成型,全系列符合信創(chuàng)國產(chǎn)化標準。 圍繞龍芯2K3000與龍芯3B6000M處理器,康仕完成覆蓋邊緣計算、智能制造、智能交通、移動加固計算等領(lǐng)域的全場景信
    的頭像 發(fā)表于 02-24 16:11 ?1102次閱讀
    信<b class='flag-5'>創(chuàng)</b>國產(chǎn)化引領(lǐng)丨<b class='flag-5'>英</b>康仕攜手龍芯打造信<b class='flag-5'>創(chuàng)</b>國產(chǎn)化<b class='flag-5'>工控</b>全場景解決方案

    國產(chǎn)金融主板:賦能智慧金融,驅(qū)動信創(chuàng)產(chǎn)業(yè)升級

    隨著信息技術(shù)的飛速迭代,信創(chuàng)產(chǎn)業(yè)已在全球范圍內(nèi)崛起,成為拉動經(jīng)濟增長、激活創(chuàng)新動能的核心力量。在信創(chuàng)產(chǎn)業(yè)的關(guān)鍵布局中,智慧金融建設(shè)是重中之重,而國產(chǎn)金融主板的規(guī)模化應用,正為智慧金融建
    的頭像 發(fā)表于 12-31 09:03 ?169次閱讀
    國產(chǎn)金融<b class='flag-5'>主板</b>:賦能智慧金融,驅(qū)動信<b class='flag-5'>創(chuàng)</b>產(chǎn)業(yè)升級

    國產(chǎn)芯筑基,飛騰主板賦能信創(chuàng)未來

    信息技術(shù)自主可控成為國家戰(zhàn)略的今天,信創(chuàng)產(chǎn)業(yè)正從“政策驅(qū)動”邁向“市場驅(qū)動”的高質(zhì)量發(fā)展新階段。作為信創(chuàng)產(chǎn)業(yè)鏈的核心硬件基石,主板的國產(chǎn)化水平直接決定著整個
    的頭像 發(fā)表于 12-30 09:49 ?198次閱讀
    國產(chǎn)芯筑基,飛騰<b class='flag-5'>主板</b>賦能信<b class='flag-5'>創(chuàng)</b>未來

    國產(chǎn)力量鑄就數(shù)字基石:飛騰工控主板賦能多領(lǐng)域智能化升級

    當前,信息技術(shù)應用創(chuàng)新產(chǎn)業(yè)進入規(guī)模化落地的關(guān)鍵階段,硬件基礎(chǔ)設(shè)施的國產(chǎn)化、自主化已從可選變?yōu)楸剡x。作為工業(yè)控制、智能終端的核心硬件,工控主板直接關(guān)系到金融、政務、能源等關(guān)鍵領(lǐng)域的系統(tǒng)穩(wěn)定與數(shù)據(jù)安全。
    的頭像 發(fā)表于 11-27 09:04 ?397次閱讀
    國產(chǎn)力量鑄就數(shù)字基石:飛騰<b class='flag-5'>工控</b><b class='flag-5'>主板</b>賦能多領(lǐng)域智能化升級

    3A6000四核龍芯工控主板,推動信創(chuàng)工控深度融合

    當今信創(chuàng)科技快速發(fā)展,技術(shù)的不斷演進和市場需求的變化,在工控領(lǐng)域也在進行源源不斷地創(chuàng)新,其中最引人注目的是國產(chǎn)龍芯主板在其中的發(fā)展應用。
    的頭像 發(fā)表于 11-14 09:10 ?378次閱讀

    工控主板的設(shè)計特性

    在工業(yè)自動化、智能裝備、物聯(lián)網(wǎng)等領(lǐng)域,工控主板作為核心控制單元,其設(shè)計質(zhì)量直接決定了整個系統(tǒng)的穩(wěn)定性、可靠性與運行效率。與消費級主板不同,工控主板
    的頭像 發(fā)表于 11-13 08:58 ?464次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>的設(shè)計特性

    新時代的硬核基石:龍芯工控主板助力信創(chuàng)產(chǎn)業(yè)新基建

    在數(shù)字技術(shù)重塑產(chǎn)業(yè)格局的今天,信創(chuàng)產(chǎn)業(yè)已成為保障國家信息技術(shù)安全的核心戰(zhàn)略。作為工業(yè)自動化系統(tǒng)的大腦,工控主板的自主可控程度直接決定信創(chuàng)新基
    的頭像 發(fā)表于 11-05 13:54 ?288次閱讀

    工控主板的三大核心技術(shù)

    在工業(yè)自動化的浪潮中,工控主板如同“工業(yè)大腦”的核心載體,支撐著各類設(shè)備的穩(wěn)定運行與智能升級。相較于消費級主板工控主板需在復雜工況下實現(xiàn)長
    的頭像 發(fā)表于 10-16 11:05 ?375次閱讀

    智慧新核心,龍芯主板助力信創(chuàng)體系再升級

    信息技術(shù)飛速發(fā)展的當下,信創(chuàng)體系的自主可控與創(chuàng)新升級已成為國家戰(zhàn)略層面的關(guān)鍵任務。作為信創(chuàng)產(chǎn)業(yè)發(fā)展的重要基礎(chǔ)硬件支撐,國產(chǎn)工控主板正發(fā)揮著
    的頭像 發(fā)表于 08-11 09:14 ?695次閱讀

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實力

    信息技術(shù)飛速發(fā)展的當下,信創(chuàng)產(chǎn)業(yè)已成為我國實現(xiàn)科技自立自強、保障國家信息安全的關(guān)鍵領(lǐng)域。信創(chuàng),即信息技術(shù)應用創(chuàng)新,其核心目標是實現(xiàn)
    的頭像 發(fā)表于 07-22 18:20 ?707次閱讀

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動產(chǎn)業(yè)升級和實現(xiàn)數(shù)字主權(quán)的重任。簡單來
    的頭像 發(fā)表于 06-13 10:06 ?8214次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應用創(chuàng)新”戰(zhàn)略

    創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機遇?

    信息技術(shù)應用創(chuàng)新浪潮的推動下,國產(chǎn)主板迎來了諸多新的發(fā)展機遇。信創(chuàng)產(chǎn)業(yè)旨在實現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標為國產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?721次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機遇?

    工控主板特點與應用場景介紹

    工控主板(IndustrialMotherboard)是專為工業(yè)環(huán)境設(shè)計的計算機主板,用于控制、監(jiān)測和管理工業(yè)設(shè)備及自動化系統(tǒng)。與普通消費級主板相比,
    的頭像 發(fā)表于 03-06 14:39 ?1301次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>特點與應用場景<b class='flag-5'>介紹</b>