亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Round-Robin方法的多進(jìn)程電子證件操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2018-03-27 06:04:54崔鵬飛郭小波王開(kāi)林肖輝遠(yuǎn)葛利軍
        警察技術(shù) 2018年2期
        關(guān)鍵詞:服務(wù)程序寄存器中斷

        崔鵬飛 郭小波 王開(kāi)林 肖輝遠(yuǎn) 葛利軍

        1.公安部第一研究所 2. 北京市微技術(shù)研究所

        一、電子證件操作系統(tǒng)應(yīng)用現(xiàn)狀

        當(dāng)前,電子證件芯片操作系統(tǒng)(COS)幾乎全部采用應(yīng)答式單線程模式,該模式在主函數(shù)中構(gòu)建一個(gè)死循環(huán),當(dāng)芯片從天線獲取能量啟動(dòng)后,進(jìn)入該死循環(huán),在循環(huán)內(nèi)部構(gòu)建相應(yīng)的專用業(yè)務(wù)流程。

        業(yè)務(wù)流程中一般會(huì)涉及加解密計(jì)算、對(duì)芯片EEPROM的讀寫(xiě)和無(wú)線接口的收發(fā)等工作,這些業(yè)務(wù)都是通過(guò)主程序的死循環(huán)進(jìn)行順序執(zhí)行,并完成一個(gè)交互。此種單進(jìn)程業(yè)務(wù)流程使單片機(jī)的運(yùn)行效率較低。

        本系統(tǒng)在電子證件芯片中構(gòu)建多進(jìn)程,使芯片在獲取命令后把相互獨(dú)立的步驟進(jìn)行并發(fā)運(yùn)行。這種運(yùn)行模式會(huì)提高芯片的執(zhí)行效率和資源使用率,為電子證件芯片未來(lái)發(fā)展提供新模式,滿足電子證件未來(lái)發(fā)展需求。

        二、芯片實(shí)現(xiàn)時(shí)間片輪轉(zhuǎn)法需要具備的功能

        時(shí)間片輪轉(zhuǎn)(Round-Robin)方法是讓先來(lái)先服務(wù)(FCFS)的進(jìn)程就緒隊(duì)列中的進(jìn)程都得到處理器一個(gè)時(shí)間片來(lái)運(yùn)行,在時(shí)間片使用完畢后,如果進(jìn)程任務(wù)執(zhí)行完畢,則進(jìn)程結(jié)束;否則系統(tǒng)把該進(jìn)程移動(dòng)至就緒隊(duì)列的隊(duì)尾,依此循環(huán),直到所有進(jìn)程都執(zhí)行完畢。有一種特殊情況是:當(dāng)一個(gè)進(jìn)程在合法時(shí)間片運(yùn)行過(guò)程中發(fā)生I/O請(qǐng)求,系統(tǒng)會(huì)把該進(jìn)程放入系統(tǒng)阻塞隊(duì)列,當(dāng)I/O請(qǐng)求工作完成后,系統(tǒng)自動(dòng)把該進(jìn)程放入進(jìn)程就緒隊(duì)列中。圖2簡(jiǎn)單示意Round-Robin對(duì)一個(gè)進(jìn)程的調(diào)度運(yùn)行過(guò)程。

        以上過(guò)程圖要正常運(yùn)行,則需要對(duì)時(shí)間片進(jìn)行控制,這就需要芯片有定時(shí)器來(lái)控制時(shí)間片的大??;時(shí)間片運(yùn)行完畢需要對(duì)進(jìn)程進(jìn)行調(diào)度,則需要芯片有中斷機(jī)制,中斷服務(wù)程序完成對(duì)進(jìn)程的調(diào)度。

        (一)中斷機(jī)制

        這里的中斷是指異?;蛘呤录囊环N響應(yīng),該響應(yīng)會(huì)自動(dòng)保存系統(tǒng)當(dāng)前狀態(tài)以便恢復(fù)并自動(dòng)進(jìn)入中斷服務(wù)程序。

        具體到本系統(tǒng),定時(shí)器到達(dá)預(yù)定時(shí)間發(fā)出中斷請(qǐng)求給中斷控制器,中斷控制器把該請(qǐng)求通過(guò)仲裁之后發(fā)送給CPU,請(qǐng)求運(yùn)行時(shí)鐘中斷服務(wù)程序。圖3示意中斷機(jī)制過(guò)程。

        (二)定時(shí)器

        在計(jì)算機(jī)控制中定時(shí)器是一個(gè)常用的模塊,一般可以通過(guò)軟件、不可編程硬件或可編程硬件實(shí)現(xiàn)。

        STC89C52RC單片機(jī)定時(shí)器屬于可編程定時(shí)器,達(dá)到預(yù)定時(shí)間后以中斷方式請(qǐng)求CPU響應(yīng),定時(shí)準(zhǔn)確,不浪費(fèi)CPU時(shí)間。

        51系列單片機(jī)定時(shí)器結(jié)構(gòu)圖如圖4所示:

        在STC89C52RC增強(qiáng)型單片機(jī)中,本例選用定時(shí)器2,通過(guò)寄存器T2CON、T2MOD、RCAP2H和RCAP2L,并通過(guò)ET2位和TR2位配合控制運(yùn)行。

        三、基于單片機(jī)的時(shí)間片輪轉(zhuǎn)法設(shè)計(jì)

        本系統(tǒng)通過(guò)STC89C52RC單片機(jī)模擬運(yùn)行,采用時(shí)間片輪轉(zhuǎn)法,并使用UART口為輸出口顯示系統(tǒng)運(yùn)行信息,即UART口模擬進(jìn)程共享設(shè)備(即:臨界資源)。因此,進(jìn)程在并發(fā)運(yùn)行時(shí),首先需要通過(guò)互斥關(guān)系去獲得資源,然后輸出自己的信息,最后再釋放資源給其他進(jìn)程使用。該過(guò)程需要使用信號(hào)量和P、V操作實(shí)現(xiàn)進(jìn)程間互斥。

        (一)進(jìn)程互斥與臨界區(qū)設(shè)計(jì)

        臨界區(qū)是指各個(gè)進(jìn)程在對(duì)臨界資源進(jìn)行操作的程序段。利用P、V操作解決臨界區(qū)問(wèn)題時(shí),首先設(shè)置S為進(jìn)程互斥的公用信號(hào)量并賦予初值,然后把臨界區(qū)程序段放置于P(S)操作和V(S)操作之間即可,圖5以兩個(gè)進(jìn)程為例示意:

        本系統(tǒng)中S信號(hào)量是全局變量 volatile unsigned char Cr_Count,這里volatile關(guān)鍵字不能缺,確保系統(tǒng)在獲取該參數(shù)時(shí)都需要重新讀取,從而獲得實(shí)時(shí)值。

        ·進(jìn)入臨界區(qū)函數(shù)結(jié)合STC89C52RC單片機(jī)設(shè)計(jì)如下:

        這里首先需要關(guān)閉STC89C52RC單片機(jī)系統(tǒng)中斷,在進(jìn)程進(jìn)入臨界區(qū)后系統(tǒng)不能響應(yīng)任何中斷,不然會(huì)導(dǎo)致臨界區(qū)代碼執(zhí)行異常,或者可以認(rèn)為臨界區(qū)必須是原子操作。

        ·離開(kāi)臨界區(qū)函數(shù)結(jié)合STC89C52RC單片機(jī)設(shè)計(jì)如下:

        這里首先判斷Cr_Count大于1,這表明有多少個(gè)進(jìn)程需要進(jìn)臨界區(qū),也可以讓系統(tǒng)判斷是否要真的退出臨界區(qū),如果Cr_Count等于0,這時(shí)表示沒(méi)有進(jìn)程需要再進(jìn)入臨界區(qū),這時(shí)打開(kāi)系統(tǒng)中斷,系統(tǒng)恢復(fù)響應(yīng)中斷。

        (二)共享設(shè)備訪問(wèn)設(shè)計(jì)

        共享設(shè)備即臨界資源,對(duì)臨界資源的訪問(wèn),我們使用一種稱為“鎖”的機(jī)制。這種方法是用一個(gè)全局變量Z,把變量Z稱為“鎖”。它有兩種狀態(tài):0和X(非0正數(shù)),0表示鎖打開(kāi)、X表示鎖關(guān)閉。還有一個(gè)加鎖操作LOCK(Z)和一個(gè)解鎖操作UNLOCK(Z),LOCK就是將Z置為X,UNLOCK是將Z置為0。

        本系統(tǒng)Z變量對(duì)應(yīng)于全局變量unsigned char uart_used,并在UART初始化時(shí)賦值為0,表示設(shè)備沒(méi)有被占用。

        ·基于鎖機(jī)制的獲取設(shè)備函數(shù)偽代碼如下設(shè)計(jì):

        在獲取UART時(shí)使用了Enter_Critical()和Exit_Critical()函數(shù),主要是因?yàn)閡art_used變量的賦值操作也必須是原子操作。不難看出上面流程主要功能是將uart_used變量置為X的過(guò)程。

        ·基于鎖機(jī)制的釋放設(shè)備函數(shù)偽代碼如下設(shè)計(jì):

        這里主要功能就是將uart_used變量值置為0,表示臨界資源處于可使用狀態(tài)。

        (三)中斷及保護(hù)設(shè)計(jì)

        本系統(tǒng)主要用到了STC89C52RC單片機(jī)的定時(shí)器中斷,在中斷服務(wù)程序中編寫(xiě)了進(jìn)程調(diào)度代碼,該段代碼有以下要求:

        ·必須關(guān)閉系統(tǒng)中斷,進(jìn)程在調(diào)度時(shí)不能被中斷,否則進(jìn)程就會(huì)運(yùn)行錯(cuò)亂;進(jìn)程結(jié)束后再打開(kāi)系統(tǒng)中斷。

        ·必須在進(jìn)入中斷時(shí)保護(hù)CPU上下文,離開(kāi)中斷時(shí)恢復(fù)CPU上下文。

        ·必須清除定時(shí)器中斷,離開(kāi)中斷時(shí)不需要設(shè)置它,因?yàn)橛布?huì)自動(dòng)設(shè)置。

        ·對(duì)以上三種操作,在進(jìn)入中斷服務(wù)程序時(shí),最好先關(guān)閉系統(tǒng)中斷,然后保護(hù)CPU上下文,最后清定時(shí)器中斷標(biāo)志;離開(kāi)中斷服務(wù)程序時(shí),先恢復(fù)CPU上下文,最后打開(kāi)系統(tǒng)中斷。

        基于STC89C52RC單片機(jī)的定時(shí)器中斷服務(wù)程序偽代碼如下:

        保護(hù)CPU上下文沒(méi)有出現(xiàn)ACC、PSW、B寄存器,這是因?yàn)镾TC89C52RC單片機(jī)會(huì)自動(dòng)對(duì)它們進(jìn)行壓棧保護(hù);保護(hù)CPU上下文出現(xiàn)的PUSH X對(duì)應(yīng)恢復(fù)CPU上下文出現(xiàn)的POP X匯編指令,表示對(duì)X號(hào)寄存器進(jìn)行壓棧和出棧。

        8051系列單片機(jī)在片內(nèi)RAM中有4個(gè)不同的工作寄存器組,每個(gè)寄存器組包含8個(gè)工作寄存器R0-R7。

        四、多進(jìn)程功能在單片機(jī)上的實(shí)現(xiàn)

        本節(jié)主要是在第4節(jié)功能的基礎(chǔ)上完成對(duì)進(jìn)程的運(yùn)行操作,這樣就達(dá)到了該系統(tǒng)最終設(shè)計(jì)目標(biāo)。進(jìn)程的運(yùn)行操作主要有三種:進(jìn)程創(chuàng)建、進(jìn)程調(diào)度和進(jìn)程刪除。

        (一)進(jìn)程創(chuàng)建

        進(jìn)程在系統(tǒng)中是分配資源的單位,本系統(tǒng)通過(guò)二維數(shù)組unsigned char idata Task_Stack[MAX_TASK][S_DEPTH]給每個(gè)進(jìn)程分配相應(yīng)資源。從這里可看出,系統(tǒng)可以最多創(chuàng)建MAX_TASK個(gè)進(jìn)程,每個(gè)進(jìn)程最多占用S_DEPTH片內(nèi)RAM資源,這里關(guān)鍵字idata也可以換成xdata,但是建議用片內(nèi)資源。進(jìn)程創(chuàng)建函數(shù)偽代碼如下:

        參數(shù)Task_P、Task和Msg分別表示進(jìn)程優(yōu)先級(jí)、進(jìn)程入口程序和進(jìn)程消息。

        (二)進(jìn)程調(diào)度

        進(jìn)程調(diào)度主要完成進(jìn)程使用完預(yù)定時(shí)間片后對(duì)另外一個(gè)進(jìn)程進(jìn)行調(diào)度運(yùn)行的功能,該代碼段編寫(xiě)在定時(shí)器中斷服務(wù)程序中。其偽代碼如下:任務(wù)

        (三)進(jìn)程刪除

        進(jìn)程刪除即把一個(gè)不再有價(jià)值的進(jìn)程刪除,空出資源供其它進(jìn)程利用。進(jìn)程刪除主要是在任務(wù)列表上清除任務(wù)標(biāo)志,并清除進(jìn)程控制塊和其占用的資源。其偽代碼如下:

        (四)系統(tǒng)運(yùn)行

        當(dāng)前系統(tǒng)通過(guò)STC89C52RC單片機(jī)模擬運(yùn)行,運(yùn)行操作流程如下:

        1. 在系統(tǒng)主函數(shù)中創(chuàng)建相應(yīng)的任務(wù),代碼截圖如圖6。

        2. 編譯工程。

        3. 正確連接STC89C52RC單片機(jī)開(kāi)發(fā)板,下載hex文件需要STC-ISP專用軟件,圖7所示已經(jīng)完成下載hex文件。

        4. 啟動(dòng)STC89C52RC單片機(jī),通過(guò)串口調(diào)試助手工具捕獲四個(gè)進(jìn)程發(fā)出的信息,如圖8所示。

        五、結(jié)束語(yǔ)

        隨著公安業(yè)務(wù)的不斷前進(jìn)與發(fā)展,對(duì)便攜式設(shè)備和安全證卡類有限資源的裝備材料需求越來(lái)越多,作者通過(guò)一個(gè)小資源單片機(jī)實(shí)現(xiàn)了一個(gè)小的并發(fā)系統(tǒng),可以應(yīng)用于便攜式設(shè)備和證卡等小芯片資源中,該系統(tǒng)是一個(gè)可以完成需要并發(fā)執(zhí)行的多應(yīng)用任務(wù)平臺(tái)。

        該系統(tǒng)目前還有其局限性,但經(jīng)過(guò)測(cè)試,在滿足目前公安的一些應(yīng)用上是可行的。以后可以替換目前在應(yīng)用的單線程應(yīng)用模式,擴(kuò)展了后期應(yīng)用思路。

        [1] William Stallings著.陳向群譯. 操作系統(tǒng)精髓與設(shè)計(jì)原理.電子工業(yè)出版社,2010.

        [2] 徐愛(ài)鈞,彭秀華.著. Keil Cx51 單片機(jī)高級(jí)語(yǔ)言編程與uVision2. 電子工業(yè)出版社,2008.

        [3] 楊學(xué)昭,王東云,著.單片機(jī)原理、接口及應(yīng)用(含51).西安電子科技大學(xué)出版社,2009.

        猜你喜歡
        服務(wù)程序寄存器中斷
        基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
        基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
        視聽(tīng)(2020年3期)2020-06-11 14:28:18
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        男女上床视频在线观看| 色综合久久精品中文字幕| 尤物无码一区| 国产精品一区二区午夜久久| 澳门精品一区二区三区| 日韩精品极品系列在线免费视频| 丰满人妻被猛烈进入中文字幕护士| 国产亚洲av夜间福利在线观看 | 成年人干逼视频水好多| 亚洲va中文字幕无码一二三区| 天天躁日日躁狠狠躁欧美老妇| 使劲快高潮了国语对白在线| 无码的精品免费不卡在线| 国产三级黄色在线观看| 精品国精品自拍自在线| 亚洲一区二区三区精品视频| 久久不见久久见免费视频6| 精品国产aⅴ无码一区二区 | 亚洲国产天堂一区二区三区| 久久久久亚洲av无码观看| 欧美日韩国产在线观看免费| 亚洲情精品中文字幕有码在线| 亚洲av网站在线免费观看| 亚洲国产精品一区二区毛片| 人人爽人人爽人人片av| 国产在线不卡一区二区三区| 成人无码网www在线观看| 邻居少妇张开腿让我爽视频| 国产女同va一区二区三区| 亚洲精品~无码抽插| 精产国品一二三产区m553麻豆| 在线国产视频精品视频| 日本黄色高清视频久久| 伦伦影院午夜理论片| 99久久精品日本一区二区免费| 男人天堂网在线视频| 国产av天堂亚洲国产av麻豆| 日韩在线精品免费观看| 亚洲欧洲免费无码| 亚洲第一se情网站| 国产鲁鲁视频在线播放|