EM9560工控主板是以EM9460工控主板為基礎(chǔ),并針對(duì)客戶應(yīng)用的需求,增加了更多通用數(shù)字IO,于2012年初推出的一款低成本嵌入式主板產(chǎn)品。該產(chǎn)品保持了Linux操作系統(tǒng)作為客戶應(yīng)用程序的軟件平臺(tái),其基本接口功能API函數(shù)上也與前期產(chǎn)品EM9460完全兼容,從而保證了客戶的應(yīng)用程序可不加修改的直接運(yùn)行于EM9560。
EM9560的GPIO數(shù)量從原有的16位(即EM9460的GPIO數(shù))增加到46位。為了方便客戶應(yīng)用程序的一致性,EM9560的GPIO驅(qū)動(dòng)支持用戶應(yīng)用程序采用現(xiàn)有API函數(shù)就可操作所有的GPIO。本文主要介紹如何利用現(xiàn)有API函數(shù)實(shí)現(xiàn)EM9560的GPIO操作。
EM9560的46位GPIO分成了2組,第一組為原有的16位GPIO,稱(chēng)為GPIO0–GPIO15,第二組為擴(kuò)展的新的GPIO,為區(qū)別說(shuō)明,成為GPIOX0–GPIOX29。注意這兩組GPIO都沒(méi)有用到最高bit,即BIT31。新的API函數(shù)正是利用BIT31作為輸入?yún)?shù),當(dāng)BIT31為“0”時(shí),表示操作基本的GPIO0–GPIO15;而B(niǎo)IT31=“1”時(shí),則表示操作擴(kuò)展的GPIOX0–GPIOX29。舉例說(shuō)明如下:
#define GPIOX_FLAG (1 << 31) // 定義操作標(biāo)志
以設(shè)置GPIO位輸出高電平為例,其基本操作函數(shù)保持不變:
int GPIO_OutSet(int fd, unsigned int dwSetBits)
{
int rc;
rc = ioctl(fd, EM9X60_GPIO_IOCTL_OUT_SET, &dwSetBits);
return rc;
}
當(dāng)操作基本的GPIO0–GPIO15時(shí),調(diào)用方式為:
unsigned int uBits = GPIOm | … | GPIOn; // 設(shè)置相關(guān)GPIO位
rc = GPIO_OutSet(fd, uBits );
而當(dāng)操作擴(kuò)展的GPIOX0–GPIOX29時(shí),調(diào)用方式為:
unsigned int uBits = GPIOm | … | GPIOn; // 設(shè)置相關(guān)GPIO位
rc = GPIO_OutSet(fd, uBits |GPIOX_FLAG ); // 設(shè)置擴(kuò)展標(biāo)志位
由于GPIO的API大多數(shù)是輸出類(lèi)型的,對(duì)僅操作基本GPIO0 – GPIO15,原有程序可不做修改,就可直接使用。但對(duì)讀取GPIO狀態(tài),則需要特別注意,其輸出參數(shù)必須事先設(shè)置標(biāo)志位,才能調(diào)用狀態(tài)讀取函數(shù),其相關(guān)代碼如下:
基本的狀態(tài)讀取函數(shù)不變:
int GPIO_PinState(int fd, unsigned int* pPinState)
{
int rc;
unsigned int dwCurrPinState;
rc = ioctl(fd, EM9X60_GPIO_IOCTL_PIN_STATE, &dwCurrPinState);
if(rc == 0) // ioctl successful
{
*pPinState = dwCurrPinState;
}
return rc;
}
對(duì)讀取基本GPIO0–GPIO15的狀態(tài),需要對(duì)輸出參數(shù)先賦0,再調(diào)用:
unsigned int uState = 0;
rc = GPIO_PinState(fd, &uState);
對(duì)讀取擴(kuò)展GPIOX0 – GPIOX29的狀態(tài),需要對(duì)輸出參數(shù)先設(shè)置擴(kuò)展GPIO標(biāo)志,再調(diào)用:
unsigned int uState = GPIOX_FLAG; // 設(shè)置擴(kuò)展標(biāo)志位
rc = GPIO_PinState(fd, &uState);
-
Linux
+關(guān)注
關(guān)注
87文章
11465瀏覽量
212817 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6097瀏覽量
36140
發(fā)布評(píng)論請(qǐng)先 登錄
信創(chuàng)浪潮下,國(guó)產(chǎn)主板有什么新的發(fā)展機(jī)遇?

工控主板特點(diǎn)與應(yīng)用場(chǎng)景介紹

芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位
工控主板在數(shù)控機(jī)床設(shè)備中的應(yīng)用
工業(yè)級(jí)主板和工控級(jí)主板的區(qū)別?
飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕
國(guó)產(chǎn)工控主板有什么優(yōu)勢(shì)、特點(diǎn)?
?什么是國(guó)產(chǎn)工控主板,國(guó)產(chǎn)工控主板的特點(diǎn)有哪些?
國(guó)產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎
中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)
工控主板有哪些特點(diǎn)?
信創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀
工控主板在環(huán)保智能設(shè)備中的應(yīng)用

評(píng)論