新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

在圖形界面編程中,多數(shù)時(shí)候需要對(duì)某些“事件”進(jìn)行處理。例如,當(dāng)用戶點(diǎn)擊某個(gè)按鈕時(shí),應(yīng)用程序便開始執(zhí)行某種操作。在開發(fā)中,通過(guò)一種被稱為“信號(hào)和槽”的機(jī)制來(lái)實(shí)現(xiàn)對(duì)象間的通訊。信號(hào)和槽機(jī)制,即當(dāng)一個(gè)特定事件發(fā)生時(shí),一個(gè)或幾個(gè)被指定的信號(hào)就被發(fā)射;槽即一個(gè)返回值為void的函數(shù),如果存在一個(gè)或幾個(gè)槽和該信號(hào)相連接,那么在該信號(hào)被發(fā)射后,這個(gè)(些)槽(函數(shù))就會(huì)立刻被執(zhí)行。

本文引用地址:http://m.butianyuan.cn/article/201609/303796.htm

由于設(shè)計(jì)的控制單元采用大尺寸觸摸屏,而觸摸屏性能的調(diào)試是個(gè)重要問(wèn)題,因?yàn)殡姶旁肼暤木壒?,觸摸屏容易存在點(diǎn)擊不準(zhǔn)確、抖動(dòng)等問(wèn)題。因此一般都要移植一個(gè)tslib來(lái)配合,在用戶層對(duì)觸摸屏的數(shù)據(jù)進(jìn)行濾波和矯正,同時(shí)也可給應(yīng)用程序一個(gè)統(tǒng)一接口。tslih能為觸摸屏驅(qū)動(dòng)獲得的采樣提供諸如濾波、去抖、校準(zhǔn)等功能,通常作為觸摸屏驅(qū)動(dòng)的適配層,為上層的應(yīng)用提供了一個(gè)統(tǒng)一接口。在PC端的界面設(shè)計(jì)完成后,后期修改流程如圖6所示。

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

經(jīng)過(guò)上述步驟,將編譯好的可執(zhí)行文件拷貝至開發(fā)板的opt/opia/bin目錄下,將.desktop桌面文件拷貝至opt/opia/apps/Application目錄下。重啟開發(fā)板,就可以在觸屏的桌面應(yīng)用上看到編寫的應(yīng)用程序圖標(biāo),點(diǎn)擊運(yùn)行就可以初步看到效果。

3 軟件功能設(shè)計(jì)

通過(guò)以上工作,可以在開發(fā)板上看到整體的界面效果,但要實(shí)現(xiàn)該控制單元的功能,還需要在界面程序中添加和修改代碼。

3.1 參數(shù)設(shè)置及數(shù)據(jù)的發(fā)送

首先對(duì)所要發(fā)送的數(shù)據(jù)進(jìn)行采集并打包。在發(fā)送數(shù)據(jù)之前,還需對(duì)已開發(fā)成功的做配置。在發(fā)送數(shù)據(jù)時(shí),有4種模式可供選擇:(1)CPOL=0,CPHA=0。(2)CPOL=0,CPH A=1。(3)CPOL=1,CPHA=0。(4)CPOL=1,CPHA=1。4種情況分別為MODE0、MODE1、MODE2、MODE3,其中CPOL指時(shí)鐘信號(hào)的極性,表示當(dāng)時(shí)鐘信號(hào)空閑時(shí),其電平值為低電平0或高電平1。CPOL=0,時(shí)鐘空閑時(shí)為低電平,所以當(dāng)時(shí)鐘信號(hào)有效時(shí),即為高電平;CPOL=1,時(shí)鐘空閑時(shí)為高電平,所以當(dāng)時(shí)鐘信號(hào)有效時(shí),即為低電平。CPHA指時(shí)鐘信號(hào)的相位,對(duì)應(yīng)著數(shù)據(jù)采樣是在第幾個(gè)邊沿(edge),是第一個(gè)邊沿還是第二個(gè)邊沿,0對(duì)應(yīng)第一個(gè)邊沿,1對(duì)應(yīng)第二個(gè)邊沿。

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

在本干擾機(jī)控制單元通信協(xié)議中,是采用模式MODE3。除了要對(duì)發(fā)送數(shù)據(jù)的模式設(shè)置之外,還要設(shè)置SPI模式可寫可讀、SPI的bit/word可寫可讀、SPI的波特率可寫可讀等。將參數(shù)設(shè)置完成后,按照通信協(xié)議的約定,將界面信息對(duì)應(yīng)成相應(yīng)的數(shù)據(jù),每8 bit為一組,每個(gè)word共16 bit進(jìn)行發(fā)送即可。

3.2 SD卡存儲(chǔ)功能的設(shè)計(jì)

在實(shí)際使用中,有時(shí)需要對(duì)設(shè)置的某些重要信息進(jìn)行保存,所以利用Qt中的兩個(gè)易于合并使用的類:QFile和QDataStrcam。QFile對(duì)象表示磁盤上可讀取和寫入的文件。QFile是代表多種不同設(shè)備且應(yīng)用更廣的QIODevice類的子類。QDataStream對(duì)象用于按順序排列二進(jìn)制數(shù)據(jù),以便儲(chǔ)存在QIODevice中并供以后檢索。讀取或?qū)懭隥IOD evice就如同打開數(shù)據(jù)流,然后讀取或?qū)懭胍粯雍?jiǎn)單,只是參數(shù)為不同的設(shè)備。

3.3 定時(shí)功能的設(shè)計(jì)

對(duì)于實(shí)際使用中的干擾機(jī)控制單元,需要發(fā)送干擾數(shù)據(jù)時(shí),在界面上進(jìn)行相應(yīng)設(shè)置,即可直接發(fā)送。但是更多時(shí)候需要做的是讀取并顯示干擾機(jī)從環(huán)境中測(cè)到的數(shù)據(jù),可以通過(guò)點(diǎn)擊界面上的更新按鈕,但是無(wú)法實(shí)時(shí)更新,所以這里設(shè)計(jì)一個(gè)能夠定時(shí)自動(dòng)更新界面信息功能是必要的。定時(shí)功能主要利用Qt中的QTimmer類,其核心程序如下:

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

除此之外,在整個(gè)程序中的某些功能函數(shù)中,還要加上internalTimer→stop();這行令定時(shí)器關(guān)閉的代碼,原因是在有些界面參數(shù)進(jìn)行設(shè)置后或讀取并顯示后,暫時(shí)無(wú)需定時(shí)讀取功能,所以就需關(guān)閉定時(shí)功能,待需要時(shí)再通過(guò)internalTimer→start(autostartTime)打開定時(shí)器即可。

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

當(dāng)整個(gè)程序的功能全部設(shè)計(jì)完成后,進(jìn)行整體測(cè)試,流程如圖8所示,開機(jī)后,ARM會(huì)自動(dòng)啟動(dòng)干擾機(jī)控制單元界面,并開始計(jì)時(shí)。當(dāng)定時(shí)時(shí)間到,ARM單元會(huì)讀取FPGA中的主從裝置標(biāo)志位并進(jìn)行顯示,若讀到從機(jī),則將FPGA中的信息顯示到界面中;若為主機(jī),直接讀取FPGA延遲量更新標(biāo)志位。若為更新,則表示FPGA有新信息,需要點(diǎn)擊設(shè)置將當(dāng)前界面更新為最新參數(shù),然后開始重新計(jì)時(shí)。

3.4 運(yùn)行測(cè)試

對(duì)設(shè)計(jì)好的控制單元進(jìn)行測(cè)試,按照與FPGA的通信協(xié)議,ARM界面信息轉(zhuǎn)化為數(shù)據(jù)后,每8位一組,兩組為一個(gè)信息單元進(jìn)行傳送。反之,當(dāng)FPGA對(duì)ARM發(fā)送數(shù)據(jù)時(shí)同理對(duì)數(shù)據(jù)進(jìn)行解析。利用FPGA的邏輯分析儀對(duì)發(fā)送與接收的數(shù)據(jù)進(jìn)行采樣,結(jié)果如下圖9所示。

基于ARM的分布式干擾機(jī)控制單元設(shè)計(jì)

圖9中,SCLK_BUF為時(shí)鐘信號(hào),每8個(gè)時(shí)鐘脈沖為一個(gè)時(shí)鐘周期;SDI為ARM發(fā)送的數(shù)據(jù),SD0為ARM接收的數(shù)據(jù);ADDR_SPI與DATA_SPI為ARM發(fā)送數(shù)據(jù)的低8位與高8位。從圖中可以看出,ARM端發(fā)送的數(shù)據(jù)依次為00h,00h,01h,00h,02h,00h,03h,00h……。在FPGA一端,收到的數(shù)據(jù)同樣是00h,00h,01h,00h,02h,00h,03h,00h……,其中ADDR_ SPI的數(shù)據(jù)就是收到數(shù)據(jù)的奇數(shù)項(xiàng),其中DATA_SPI的數(shù)據(jù)就是收到數(shù)據(jù)的偶數(shù)項(xiàng)。同時(shí),在第3個(gè)有效脈沖周期到達(dá)時(shí),ARM控制單元接收到來(lái)自FPGA的數(shù)據(jù),這個(gè)數(shù)據(jù)解析后反映到ARM界面即為裝置屬性選項(xiàng),界面會(huì)自動(dòng)響應(yīng)將裝置屬性選項(xiàng)設(shè)置為主裝置。



關(guān)鍵詞: ARM 分布式干擾機(jī) Fedora SPI Qt

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉