日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 本文針對數(shù)據(jù)采集與處理系統(tǒng)的應(yīng)用需求,設(shè)計了嵌入Linux的ARM9處理器LPC3250與16位AD采樣芯片MAX1303的硬件接口和驅(qū)動程序。首先,描述了LPC3250和MAX1303的性能、特點以及硬件接口電路設(shè)計方案。然

本文針對數(shù)據(jù)采集與處理系統(tǒng)的應(yīng)用需求,設(shè)計了嵌入LinuxARM9處理器LPC3250與16位AD采樣芯片MAX1303的硬件接口和驅(qū)動程序。首先,描述了LPC3250和MAX1303的性能、特點以及硬件接口電路設(shè)計方案。然后,在硬件平臺的基礎(chǔ)上,詳細地闡述了嵌入式Linux下MAXl303驅(qū)動程序的組成模塊和具體實現(xiàn)方法,并給出了部分源代碼以及對設(shè)備驅(qū)動的測試方法。測試結(jié)果表明,系統(tǒng)工作正常、穩(wěn)定,采樣結(jié)果正確,具有實際工程應(yīng)用價值。

在數(shù)據(jù)采集系統(tǒng)中,通常是通過傳感器將自然世界的物理量轉(zhuǎn)化成電量,電量是模擬量,必須經(jīng)過模/數(shù)轉(zhuǎn)換才能被系統(tǒng)的處理器讀取?,F(xiàn)在的很多微處理器都有片內(nèi)AD,但這些AD多數(shù)是8位、10位或者12位,有時候很難滿足精度要求。所以需要利用處理器的接口資源外擴精度較高的AD芯片。然而精度越高,價格越貴。所以在選擇AD芯片時,必須充分考慮這兩個方面。本系統(tǒng)在對采樣精度和價格進行權(quán)衡后,決定選擇16位模/數(shù)轉(zhuǎn)換器。由于設(shè)計的數(shù)據(jù)采集系統(tǒng)放置于環(huán)境惡劣的野外,所以全部器件都要滿足工業(yè)級標(biāo)準(zhǔn),所以最終選擇了MAXIM公司的MAX1303。處理器選用了恩智普公司的ARM9微處理器LPC3250。在此基礎(chǔ)上,設(shè)計了硬件連接,以及Linux2.6.29內(nèi)核下的設(shè)備驅(qū)動程序,并通過編寫的應(yīng)用程序?qū)︱?qū)動程序進行了測試。

1 芯片介紹
1.1 LPC3250簡介
LPC3250是恩智普公司推出的、采用RISC結(jié)構(gòu)、基于ARM926EJ-S內(nèi)核的32位工業(yè)級處理器,可工作于-40~+85℃的范圍內(nèi)。它的最高工作頻率可達266 MHz,具有完整的存儲管理單元(MMU),可以嵌入Linux/Wince等需要MMU支持的操作系統(tǒng);高達256 kB的內(nèi)部SRAM可用于數(shù)據(jù)和代碼存儲;32 kB數(shù)據(jù)高速緩存和32 kB指令高速緩存;矢量浮點協(xié)處理器具有硬件浮點計算功能。另外,片內(nèi)有SD/MMC卡主機控制器和以太網(wǎng)控制器使系統(tǒng)實現(xiàn)文件存儲和以太網(wǎng)功能變得簡單,這對于數(shù)據(jù)采集系統(tǒng)非常有用。
1.2 AD芯片MAX1303簡介
MAX1303是MAXIM公司推出的工業(yè)級、低功耗、多量程、16位精度的模/數(shù)轉(zhuǎn)換芯片,采用+5 V單電源供電,最高采樣率可達115kbps。可使用+4.096 V片上基準(zhǔn)或者3.800到4.136 V之間的外部電壓基準(zhǔn)。采用20引腳的TSOP封裝。它的引腳如圖1所示。


從引腳圖可以看出,芯片外部有多種電源引腳,這些引腳對應(yīng)芯片內(nèi)部獨立的功能模塊。對芯片采用獨立的電源供電可以盡可能的使工作環(huán)境保持低噪聲。第16、17引腳在使用外部電壓基準(zhǔn)時分別連接AVDD和基準(zhǔn)電壓,在使用芯片內(nèi)部基準(zhǔn)時,分別通過0.01μF和1μF的電容旁路到AGND1即可。其他引腳功能如表1所示。
CH0-CH4支持4路單端輸入,或者2路差分輸入。SSTRB在AD轉(zhuǎn)換器的某些工作模式下可指示轉(zhuǎn)換狀態(tài)。另外4種數(shù)字接口可通過SPI/OSPI /MICROWIRE兼容的串行接口與2.7 V至5.25 V的系統(tǒng)連接。
MAX1303支持7種單端輸入范圍或者3種差分輸入范圍,有7種工作模式。這些都可以通過輸入控制字進行配置。


2 系統(tǒng)硬件設(shè)計
已提到,模/數(shù)轉(zhuǎn)換器MAX1303可以通過SPI/QSPI/MICROWIRE兼容的串行接口進行控制。由于SPI比較常見,并且協(xié)議簡單,本系統(tǒng)使用SPI協(xié)議控制此AD芯片。然而,雖然LPC3250有內(nèi)置的SPI控制器,但本系統(tǒng)選擇使用LPC3250的GPI/O口模擬SPI接口對MAX1303進行控制。下面分析原因。
已提到,MAX1303有7中工作模式,其中,有3種用于數(shù)據(jù)采集。這3種工作模式是:外部時鐘模式;外部采集模式;內(nèi)部時鐘模式。這3種采集模式各有優(yōu)缺點。外部時鐘模式的吞吐率最高,同時,給處理器帶來的負擔(dān)也最高;內(nèi)部時鐘模式吞吐率次之,能適當(dāng)減輕處理器的負擔(dān);外部采集模式的吞吐率最低,但卻能最大限度的減輕處理器負擔(dān)。由于LPC3250性能強大,所以系統(tǒng)在采集數(shù)據(jù)時,使用吞吐率高的外部時鐘模式。然而,使用外部時鐘模式時,不像使用內(nèi)部時鐘模式和外部采集模式,處理器向MAX1303寫完控制字和轉(zhuǎn)換啟動字后,只需等待MAX1303的SSTRB引腳輸出的轉(zhuǎn)換結(jié)束信號,然后就可以讀取轉(zhuǎn)換結(jié)果。使用外部時鐘模式,需要精確的控制時鐘個數(shù),這使得在驅(qū)動程序中,要經(jīng)常修改SPI的相關(guān)控制器,而且還要通過查詢來確定時鐘的個數(shù)。如果使用LPC3250的GPI/O口模擬SPI協(xié)議控制AD芯片就簡單的多??刂艷PO口不斷翻轉(zhuǎn)輸出電平就可以產(chǎn)生時鐘信號,而且可隨意控制時鐘個數(shù)。對于發(fā)送數(shù)據(jù),只需要簡單的把數(shù)據(jù)字節(jié)的每個位根據(jù)時鐘變化通過GPI口輸出給AD芯片。讀取數(shù)據(jù)與發(fā)送數(shù)據(jù)是一個相反的過程,但類似。


所以,用GPI/O口模擬SPI總線控制MAX1303非常簡單。本系統(tǒng)有兩路模擬信號需要采集,使用單端輸入,MAX1303的另外兩個輸入端接地。LPC3250與MAX1303的硬件連接如圖2所示。

3 Linux下設(shè)備驅(qū)動程序設(shè)計
設(shè)備驅(qū)動程序是應(yīng)用程序和硬件之間的橋梁,它為應(yīng)用程序屏蔽硬件細節(jié),并將硬件封裝成一個文件的形式。當(dāng)應(yīng)用程序需要操作硬件時,只需操作硬件相對應(yīng)的設(shè)備文件即可。Linux對設(shè)備的分類有許多種,常見的分類是將設(shè)備分成3種:字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備。這三類設(shè)備對應(yīng)3種設(shè)備文件。不同設(shè)備的開發(fā)模式以及與內(nèi)核的接口也不相同。MAX1303屬于字符設(shè)備,本文將分析Linux2.6.29內(nèi)核下MAX 1303的字符設(shè)備驅(qū)動設(shè)計方法。
設(shè)備驅(qū)動程序與應(yīng)用程序不同,應(yīng)用程序從main函數(shù)開始執(zhí)行,而驅(qū)動程序在被安裝時,則是從module_init宏指定的函數(shù)處開始執(zhí)行。module_init宏指定的函數(shù)被稱為模塊加載函數(shù),它可以看成是驅(qū)動程序的入口。它通常完成地址映射,向內(nèi)核注冊并初始化cdev結(jié)構(gòu),創(chuàng)建設(shè)備文件等工作。模塊加載函數(shù)的程序流程圖如圖3所示。


與模塊加載函數(shù)對應(yīng)的,有一個模塊卸載函數(shù),此函數(shù)由module_exit宏指定,它在驅(qū)動模塊被卸載時執(zhí)行。它主要完成的工作包括:銷毀設(shè)備文件;注銷設(shè)備所對應(yīng)的cdev結(jié)構(gòu);釋放內(nèi)存;注銷設(shè)備號。
Struct cdev在內(nèi)核內(nèi)部被用來表示設(shè)備,這是一個非常重要的數(shù)據(jù)結(jié)構(gòu)。它內(nèi)部有一個成員結(jié)構(gòu)structfile_operations,用于連接設(shè)備編號和驅(qū)動程序的操作。這個數(shù)據(jù)結(jié)構(gòu)包含一組函數(shù)指針,這一組函數(shù)的實現(xiàn)是設(shè)計驅(qū)動程序的重點和難點。這一組函數(shù)有很多,但根據(jù)項目需求,本系統(tǒng)只實現(xiàn)open,write,read,release 4個函數(shù)。


結(jié)構(gòu)struct file_operations中的open字段對應(yīng)著系統(tǒng)調(diào)用中的open函數(shù)。在應(yīng)用程序中,通過open函數(shù)打開MAX1303對應(yīng)的設(shè)備文件時,內(nèi)核會跳轉(zhuǎn)到此函數(shù)指針處。此函數(shù)指針的實現(xiàn),主要完成初始化工作。這包括MAX1303的初始化配置和LPC3250驅(qū)動相關(guān)的寄存器設(shè)置。MAX1303的初始化包括工作模式選擇、量程范圍選擇、單端/差分輸入選擇、初始化通道選擇。對于這四項,本系統(tǒng)全部使用默認設(shè)置:外部時鐘模式;-Vref到+Vref的測量范圍;單端輸入;初始化輸入通道0。所以,在open中不用配置MAX1303。對LPC3250的寄存器配置也比較簡單,需要完成的配置有:片選信號拉高;時鐘信號拉低;處理器輸出拉低。
Write字段需要接收應(yīng)用程序從用戶空間傳遞到內(nèi)核的的數(shù)據(jù),然后將此數(shù)據(jù)通過GPO_17端口發(fā)送給MAX1303。這些數(shù)據(jù)主要用于修改MAX1303的配置,例如通道選擇。向MAX1303寫數(shù)據(jù)時需要注意MAX1303電氣特性中的兩個時間參數(shù)Tcss和TCSPw。Tcss對應(yīng)著芯片的片選信號被拉低后到第一個時鐘到來前所必需的時間間隔。Tcspw對應(yīng)著寫模擬輸入配置字節(jié)、模式控制字節(jié)、轉(zhuǎn)換啟動字節(jié)時,任意兩者之間的時間間隔。這兩個時間參數(shù)都必須大于40 ns,且沒有上限。本系統(tǒng)中,在Read中寫轉(zhuǎn)換啟動字節(jié),write中只做通道的切換,其他配置都使用默認的。
Read字段是MAX1303驅(qū)動的關(guān)鍵點。它負責(zé)讀取采樣結(jié)果,并將結(jié)果傳遞給應(yīng)用程序。在read中,首先是用8個時鐘向MAX1303寫轉(zhuǎn)換起始字節(jié),然后使用8個是時鐘周期等待AD轉(zhuǎn)換完成。最后使用16個時鐘周期讀取MAX1303輸出的轉(zhuǎn)換結(jié)果。由于轉(zhuǎn)換結(jié)果是以串行方式輸出,故需要將讀取的數(shù)據(jù)拼湊起來。又由于ARM使用的是端口3的GPI_06管腳讀取MAX1303的輸出數(shù)據(jù),且對于端口3的操作是以32位進行的,所以還需要考慮拼接端口3的哪個數(shù)據(jù)位。本文的處理方式是先將端口3讀出的數(shù)據(jù)右移6位。具體的操作代碼如下:

release對應(yīng)著系統(tǒng)調(diào)用中的close函數(shù)。它需要完成這個驅(qū)動所涉及的配置寄存器的復(fù)位,操作過程與open相反。在還原寄存器的默認設(shè)置后,打印一條設(shè)備文件關(guān)閉的信息,供應(yīng)用程序開發(fā)者調(diào)試時觀察使用。

4 Linux應(yīng)用程序設(shè)計與測試
本文介紹的應(yīng)用程序是整個系統(tǒng)的一部分,這里僅供測試驅(qū)動程序使用。測試的功能主要是驅(qū)動中的write和read功能。由于驅(qū)動程序的read中沒有對讀取的采樣值做處理,所以得到的數(shù)據(jù)還不是輸入信號的實際值,應(yīng)用程序必須對數(shù)據(jù)進行處理。由于MAX1303采用單端、雙極性輸入,所以處理公式為:

式中,實際值的單位是毫伏;采樣值是從MAX1303讀取的數(shù)據(jù);FSR是滿量程范圍,對于本系統(tǒng),F(xiàn)SR是2*Vref;本系統(tǒng)采用內(nèi)部電壓基準(zhǔn),Vref的理論值是4.096 V,但實際系統(tǒng)中會有一定的漂移,范圍一般在4.056 V到4.136 V之間。
為了測試,應(yīng)用程序每秒讀取一次兩個通道的數(shù)據(jù),并打印。應(yīng)用程序的流程圖如圖4所示。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月10日消息,在最近的高盛Communacopia +科技大會上,Intel副總裁John Pitzer透露了Intel在x86和IFS計劃方面的一些新細節(jié)。

關(guān)鍵字: Intel 處理器

在當(dāng)今的高性能計算領(lǐng)域,確保處理器、存儲和加速器之間快速可靠的通信對系統(tǒng)性能和可擴展性至關(guān)重要。因此,就誕生了Compute Express Link?(CXL?)標(biāo)準(zhǔn):其目標(biāo)是實現(xiàn)一致的內(nèi)存訪問、低延遲的數(shù)據(jù)傳輸,以及...

關(guān)鍵字: 芯片設(shè)計 處理器 加速器

9月9日消息,Intel宣布了一系列重大人事調(diào)整,涉及數(shù)據(jù)中心事業(yè)部(DCG)、客戶端計算事業(yè)部(CCG)以及新成立的中央工程事業(yè)部(CEG)。

關(guān)鍵字: Intel 處理器

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟和信息化委員會、上海市發(fā)展和改革委員會、上海市商務(wù)委員會、上海市教育委員會、上海市科學(xué)技術(shù)委員會指導(dǎo),東浩蘭生(集團)有限公司主辦,東浩蘭生會展集團上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動駕駛

在半導(dǎo)體行業(yè)的風(fēng)云變幻中,英特爾公司近來可謂麻煩不斷。

關(guān)鍵字: 英特爾 半導(dǎo)體 處理器

9月2日消息,Intel近日坦承,自家高端桌面CPU競爭力不如AMD的銳龍9000系列,但強調(diào)Panther Lake系列將按計劃在今年內(nèi)上市,同時下一代Nova Lake將全力反擊。

關(guān)鍵字: Intel 處理器

9月1日消息,繼小鵬、零跑后,現(xiàn)在小米汽車也宣布了8月的交付量。

關(guān)鍵字: 小米汽車 芯片

當(dāng)?shù)貢r間 8 月 22 日,美國芯片制造商英特爾公司宣布與美國聯(lián)邦政府達成協(xié)議,后者將向英特爾普通股投資 89 億美元,以每股 20.47 美元的價格收購 4.333 億股英特爾普通股,相當(dāng)于該公司 9.9% 的股份。

關(guān)鍵字: 英特爾 半導(dǎo)體 芯片

8月26日消息,據(jù)報道,美國政府不僅通過股權(quán)投資Intel,還積極協(xié)助其在美國本土生產(chǎn)先進芯片,包括主動聯(lián)系潛在主要客戶,以提振其晶圓代工業(yè)務(wù)。

關(guān)鍵字: Intel 處理器
關(guān)閉