999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SPI和單片機(jī)技術(shù)在嵌入式系統(tǒng)擴(kuò)展中的應(yīng)用

2016-03-22 05:36:36江漢大學(xué)文理學(xué)院信息技術(shù)學(xué)部鄧乃君
電子世界 2016年2期

江漢大學(xué)文理學(xué)院信息技術(shù)學(xué)部 鄧乃君 吳 文

?

SPI和單片機(jī)技術(shù)在嵌入式系統(tǒng)擴(kuò)展中的應(yīng)用

江漢大學(xué)文理學(xué)院信息技術(shù)學(xué)部鄧乃君吳文

【摘要】隨著計(jì)算機(jī)技術(shù)、電子技術(shù)的快速發(fā)展,芯片制造成本明顯降低,嵌入式系統(tǒng)在移動設(shè)備、數(shù)碼產(chǎn)品等各個(gè)領(lǐng)域廣泛應(yīng)用。文中基于SPI接口集成外圍單片機(jī)的方法對嵌入式系統(tǒng)功能進(jìn)行擴(kuò)展,詳細(xì)闡述整個(gè)擴(kuò)展方案的結(jié)構(gòu)及工作原理,重點(diǎn)介紹Linux環(huán)境下外圍設(shè)備驅(qū)動程序的運(yùn)行方法,以期為類似開發(fā)程序提供重要參考。

【關(guān)鍵詞】SPI;單片機(jī)技術(shù);嵌入式系統(tǒng);擴(kuò)展

近些年,對各類嵌入式系統(tǒng)進(jìn)行設(shè)計(jì)中,對系統(tǒng)的存儲、通信需求提出更高的要求。嵌入式產(chǎn)品具有個(gè)性化、人性化的特征,從而受到更多商家和消費(fèi)者的歡迎,促使嵌入式設(shè)備的市場競爭更加激烈。傳統(tǒng)的嵌入式系統(tǒng)外部接口比較滯后,導(dǎo)致嵌入式系統(tǒng)中擴(kuò)展外部設(shè)備有一定的困難。雖然芯片技術(shù)的發(fā)展提供具有強(qiáng)大功能的SOC層,其集成的功能、接口更加豐富,但其開發(fā)費(fèi)用、生產(chǎn)成本極高,在市場競爭中逐漸喪失價(jià)格優(yōu)勢。與片上系統(tǒng)比較,單片機(jī)的運(yùn)算能力不理想,但其價(jià)格低、開發(fā)周期短,能夠基于用戶需求對其功能進(jìn)行靈活調(diào)整,單片機(jī)的優(yōu)勢更加明顯。文中根據(jù)SPI接口、外圍單片機(jī)提出嵌入式系統(tǒng)功能擴(kuò)展方法,通過 SPI在主CPU外圍集成單片機(jī),借助單片機(jī)完成嵌入式系統(tǒng)的功能擴(kuò)展。

1 嵌入式系統(tǒng)擴(kuò)展方案及工作原理

嵌入式系統(tǒng)的擴(kuò)展方案的設(shè)備主要包括主CPU、單片機(jī)、外圍設(shè)備三個(gè)部分,主CPU借助SPI接口實(shí)現(xiàn)與單片機(jī)交互數(shù)據(jù),通過單片機(jī)已有的IO口、UART等接口擴(kuò)展一系列串口、紅外接口各項(xiàng)外圍設(shè)備。外圍數(shù)據(jù)經(jīng)單片機(jī)處理后借助SPI總線發(fā)送至主CPU。反之,主CPU想要訪問外圍設(shè)備也要借助SPI總線發(fā)送給單片機(jī),通過單片機(jī)程序完成對外圍設(shè)備的訪問操作。系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)功能結(jié)構(gòu)簡圖

SPI接口也稱為外圍接口,數(shù)據(jù)傳遞速度相比I2C總線更快,能夠?qū)崿F(xiàn)主CPU與多個(gè)外圍器件傳輸數(shù)據(jù)信息的目的。SPI接口工作方式為主從模式,需要設(shè)計(jì)一個(gè)主機(jī)和一個(gè)多個(gè)從器件傳送數(shù)據(jù)。本次設(shè)計(jì)中,主CPU是以單主單從的模式與外圍單面機(jī)完成點(diǎn)對點(diǎn)通信。具體應(yīng)用過中,可以依據(jù)實(shí)際需求通過SPI總線在外圍集成相對應(yīng)的單片機(jī)控制單元,從而集成大量的外圍設(shè)備。因其實(shí)際應(yīng)用領(lǐng)域的差異,根據(jù)開發(fā)的SPI協(xié)議與單片機(jī)固件程序合理調(diào)整外圍設(shè)備,在并未增加大量制造成本和開發(fā)工作量的基礎(chǔ)上,完成對嵌入式系統(tǒng)功能的擴(kuò)展操作。同時(shí),外圍控制單片機(jī)能夠?qū)λ屑稍O(shè)備采集的信息進(jìn)行相應(yīng)的前置處理,能夠分擔(dān)主CPU運(yùn)算壓力,提升整個(gè)嵌入系統(tǒng)的響應(yīng)效率。

2 外圍驅(qū)動程序結(jié)構(gòu)及運(yùn)行機(jī)制

本系統(tǒng)所用的設(shè)備驅(qū)動程序基于Linux系統(tǒng)下進(jìn)行設(shè)計(jì),在Linux系統(tǒng)中,外部設(shè)備被抽象稱作文件,對文件開展的各項(xiàng)操作也是對外部設(shè)備的操作,上述機(jī)制被稱作虛擬文件系統(tǒng)。設(shè)備驅(qū)動程序是連接上層用戶程序與機(jī)器硬件的重要接口,能夠屏蔽硬件設(shè)備各項(xiàng)具體操作,把具體的硬件設(shè)備抽象為設(shè)備文件提供給用戶程序,促使應(yīng)用程序能夠像普通文件一樣對硬件設(shè)備實(shí)施讀寫操作。設(shè)備驅(qū)動程序主要任務(wù)在于對設(shè)備及資源進(jìn)行釋放,讀取并會送程序發(fā)出的信息,實(shí)現(xiàn)用戶空間、內(nèi)核空間與物理層之間的數(shù)據(jù)傳遞。Linux環(huán)境下LED驅(qū)動程序代碼如下:

#define DEVICE_NAME "leds" //加載模式后,執(zhí)行”cat /proc/devices”命令看到的設(shè)備名稱 //

#define LED_MAJOR 231 /* 主設(shè)備號 //

應(yīng)用程序執(zhí)行ioctl(fd, cmd, arg)時(shí)的第2個(gè)參數(shù) */

#define IOCTL_LED_OFF 1

/* 用于指定LED所用的GPIO引腳 //

static unsigned long led_table [] = {

S3C2410_GPB5,

S3C2410_GPB7,

······

}。

本次設(shè)計(jì)的擴(kuò)展方法,主CPU借助SPI接口與外圍單片機(jī)完成通信。對外圍設(shè)備驅(qū)動程序進(jìn)行設(shè)計(jì)時(shí),設(shè)置SPI通信、單片機(jī)控制兩個(gè)細(xì)節(jié),把單片機(jī)所集成的外圍設(shè)備與主CPU集成本地設(shè)備中,便于用戶程序進(jìn)行讀寫操作。2.1本地系統(tǒng)設(shè)備驅(qū)動程序?qū)崿F(xiàn)過程

主CPU能夠直接集成本地串口設(shè)備及外圍單片機(jī)擴(kuò)展的串口、IO設(shè)備等驅(qū)動實(shí)現(xiàn)過程。從本地設(shè)備驅(qū)動來說,驅(qū)動程序?qū)τ布O(shè)備展開的操作直接定義至接口函數(shù)內(nèi),如果用戶程序訪問設(shè)備文件,接口函數(shù)執(zhí)行對硬件設(shè)備的讀寫等操作。如果用戶程序借助串口驅(qū)動定義的接口函數(shù)對本次串口文件展開訪問操作,驅(qū)動核心會把用戶發(fā)出的請求傳遞至本地串口,通過該串口驅(qū)動底層定義硬件函數(shù)把串口數(shù)據(jù)發(fā)送至硬件設(shè)備,達(dá)到最佳的通信目的。

2.2SPI協(xié)議及外圍擴(kuò)展設(shè)備實(shí)現(xiàn)過程

SPI協(xié)議就是串行外圍設(shè)備結(jié)構(gòu),主要應(yīng)用在AD轉(zhuǎn)換器、數(shù)字信號處理器、解碼器、實(shí)時(shí)時(shí)鐘之間,是需在芯片關(guān)節(jié)占用四根線,是一種高速的,全雙工的通信總線。SPI通信原理比較簡單,主要包括ss(cs)、sck、sdi、sdo構(gòu)成,基于SCK控制下,兩個(gè)雙向移位寄存器展開數(shù)據(jù)交換操作。因SPI總線接口主要占用微處理器4個(gè)I/O口線,使用SPI總線接口能有限監(jiān)護(hù)電力設(shè)計(jì),節(jié)省大量常規(guī)電路接口器件及I/O口線,提升整個(gè)設(shè)計(jì)的可靠性。下文介紹SPI子程序設(shè)計(jì)代碼:

//首先定義好I/O口

sbit SDO=P1^0;

sbit SDI=P1^1;

······

sbit ACC_7= ACC^7;

unsigned int SpiRead(unsigned char add)

{

unsigned int datal6;

add&=0x3f;/*6位地址*/

add |=0x80;/*讀取操作碼l0*/

SDO=1;/*發(fā)送1為起始位*/

SCK=0;

for(i=0;<8;i++)/*發(fā)送操作碼和地址*/

{

if(add&0x80==1)

SDO=1;

SCK=0;/*從設(shè)備上升沿接收數(shù)據(jù)*/

add<<= 1;

}

SCK=1;/*從設(shè)備時(shí)鐘線下降沿后發(fā)送數(shù)據(jù),空讀1位數(shù)據(jù)*/

datal6<<= 1;/*讀16位數(shù)據(jù)*/

{

SCK= 1;

datal6|=0x01;

SCK =0;

datal6< < =1;

return datal6;

}

在單片機(jī)內(nèi)集成的外圍設(shè)備,因主CPU無法對其展開直接的硬件操作,其訪問過程比較復(fù)雜。SPI通信協(xié)議棧主要包括SPI基本驅(qū)動和虛通道協(xié)議棧兩部分,SPI基本驅(qū)動協(xié)議中設(shè)定SPI數(shù)據(jù)包純屬速度、糾錯(cuò)方法等協(xié)議,確保SPI數(shù)據(jù)包能夠在主CPU與單片機(jī)進(jìn)行順利傳輸。SPI虛通道協(xié)議棧設(shè)定每一個(gè)外擴(kuò)展設(shè)備的數(shù)據(jù)格式、功能碼等協(xié)議,便于對SPI數(shù)據(jù)包展開解析、封裝操作.

驅(qū)動程序虛通道協(xié)議棧作為外圍設(shè)備的硬件驅(qū)動在,主要由外擴(kuò)展設(shè)備數(shù)據(jù)處理、重點(diǎn)響應(yīng)等內(nèi)容。上述虛擬硬件驅(qū)動通過調(diào)用協(xié)議棧虛擬的通道實(shí)現(xiàn)在用戶與SPI硬件接口對數(shù)據(jù)進(jìn)行傳遞。從單片機(jī)集成的外圍串口來說,這種外圍串口能與本地串口使用同一個(gè)串口驅(qū)動核心實(shí)施封裝,虛擬成為與本次串口相同的串口設(shè)備為用戶程序提供服務(wù)。本地串口驅(qū)動層能直接執(zhí)行串口硬件范圍操作,該虛擬硬件驅(qū)動并不執(zhí)行各項(xiàng)硬件操作,僅調(diào)用協(xié)議棧虛擬的數(shù)據(jù)通道向SPI硬件傳遞數(shù)據(jù),通過外圍單片機(jī)完成接收或發(fā)送串口數(shù)據(jù)的目的。

3 結(jié)束語

總之,對嵌入式系統(tǒng)功能進(jìn)行擴(kuò)展設(shè)計(jì)中,本次設(shè)計(jì)通過SPI接口集成外圍單片機(jī)的方法設(shè)計(jì)嵌入式系統(tǒng)擴(kuò)展方案,詳細(xì)介紹整個(gè)擴(kuò)展方案的工作原理,重點(diǎn)闡述在Linux環(huán)境下外圍驅(qū)動體系的接口及實(shí)現(xiàn)過程,這種擴(kuò)展方案成為實(shí)現(xiàn)串口、通信接口等擴(kuò)展功能,對改善外圍接口資源不足的問題做出重要貢獻(xiàn)。

參考文獻(xiàn)

[1]米書田,王濤,張然等.基于單片機(jī)及嵌入式系統(tǒng)管理煤炭存儲的探究[J].煤炭技術(shù),2013,32(2):240-242.

[2]秦磊,孫曼,王小亮等.CH395與 SPI 接口的以太網(wǎng)模塊設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015,15(7): 61-64.

[3]陳宇珂,鄭理華,張興安,等.ATMEL AVR單片機(jī)SPI大容量Flash Rom擴(kuò)展的實(shí)現(xiàn)[J].醫(yī)療衛(wèi)生裝備,2015,36(4):19-21,68.

[4]朱德良,吳國強(qiáng),陳新春等.一種單片機(jī)多任務(wù)操作系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].自動化與儀表,2014,29(1):50-52.

[5]湯沁,徐學(xué)軍,彭地卓等.基于Linux嵌入式系統(tǒng)的S3C6410和ADS1298R的SPI接口驅(qū)動的實(shí)現(xiàn)[J].中國新通信,2014,9(1):79-80,81.

[6]蔡紅專,劉強(qiáng),陳琎等.嵌入式系統(tǒng)中基于SPI協(xié)議的SD卡擴(kuò)展實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2014,33(19):23-26.

鄧乃君(1993—),男,湖北武漢人,現(xiàn)就讀江漢大學(xué)文理學(xué)院信息技術(shù)學(xué)部,從事嵌入式系統(tǒng)的開發(fā)與研究。

作者簡介:

主站蜘蛛池模板: 88av在线| 亚洲欧美日韩中文字幕一区二区三区| 久久久久青草线综合超碰| 最新日本中文字幕| 亚洲爱婷婷色69堂| 高潮毛片无遮挡高清视频播放| 67194亚洲无码| 四虎国产精品永久在线网址| 亚洲精品成人7777在线观看| 在线免费无码视频| 亚洲综合精品香蕉久久网| 91成人试看福利体验区| 国产91无毒不卡在线观看| 国产精品粉嫩| 五月激情综合网| 久久精品国产精品国产一区| av在线无码浏览| 国产精品七七在线播放| 国产00高中生在线播放| 国产91在线|日本| 尤物视频一区| 亚洲天堂精品在线| 操美女免费网站| 又爽又黄又无遮挡网站| 国产v欧美v日韩v综合精品| 国产91蝌蚪窝| 99re视频在线| 女人毛片a级大学毛片免费| www中文字幕在线观看| 美女扒开下面流白浆在线试听 | 免费一看一级毛片| 成人午夜视频在线| 婷婷成人综合| 国产97色在线| 91色在线观看| 亚洲精品第一在线观看视频| 国产精品永久不卡免费视频| 丝袜国产一区| 天天躁日日躁狠狠躁中文字幕| 在线亚洲小视频| 亚洲天堂区| 亚洲精选高清无码| 国产凹凸一区在线观看视频| 亚洲国产成人久久77| 久草视频精品| 波多野结衣中文字幕一区| 波多野结衣一区二区三区四区视频 | 26uuu国产精品视频| 九九热精品在线视频| 精品偷拍一区二区| 久久久久国产精品嫩草影院| 欧洲亚洲欧美国产日本高清| 久久中文无码精品| 国产精品成人第一区| 国产无码网站在线观看| 日韩经典精品无码一区二区| 午夜天堂视频| 国产亚洲视频免费播放| 国产一区二区影院| 欧美精品三级在线| 成人看片欧美一区二区| 欧美激情第一区| 国产内射在线观看| 国产丝袜无码精品| 国产精品久久久久婷婷五月| 国产一区二区人大臿蕉香蕉| 国产在线视频欧美亚综合| 亚洲人成网站在线播放2019| 国产18在线| 亚洲AⅤ永久无码精品毛片| 操国产美女| 国产成人综合亚洲网址| 美女内射视频WWW网站午夜| 国产欧美高清| 欧美人与牲动交a欧美精品| 亚洲激情99| 国产大片喷水在线在线视频| 精品无码日韩国产不卡av| 青青草原国产免费av观看| 亚洲日产2021三区在线| 国产福利影院在线观看| 91亚洲精选|