[發明專利]分層任務系統的SPI與Eeprom異步通訊方法有效
| 申請號: | 201711450274.0 | 申請日: | 2017-12-27 |
| 公開(公告)號: | CN109976898B | 公開(公告)日: | 2022-11-08 |
| 發明(設計)人: | 肖浩;王雙全;黃洪劍 | 申請(專利權)人: | 上海大郡動力控制技術有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48;G06F9/54 |
| 代理公司: | 上海天協和誠知識產權代理事務所 31216 | 代理人: | 沈國良 |
| 地址: | 201114 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分層 任務 系統 spi eeprom 異步 通訊 方法 | ||
1.一種分層任務系統的SPI與Eeprom異步通訊方法,其特征在于本方法包括如下步驟:
步驟一、SPI與Eeprom進行全雙工模式通訊,在進行Eeprom讀寫任務時,將Eeprom劃分成塊,并指定每塊區域的起始地址、數據長度及對應的RAM地址;
步驟二、將應用層任務系統劃分為臨時任務和系統任務,臨時任務為在系統運行過程中臨時要寫入Eeprom的任務,系統任務為上電讀任務和下電寫任務,臨時任務擁有任務隊列深度,僅當任務隊列有空位時才能繼續接收新的臨時任務,系統任務無任務隊列深度,當上電讀任務或下電寫任務下發時,按照Eeprom塊的索引號依次下發任務,僅當該索引號系統任務完成時才能進行下一個索引號對應的系統任務;
步驟三、驅動層以任務接收函數周期性接收應用層發送的任務,接收到任務后更改該函數任務狀態標識,用于標識驅動層接收到來自應用層的任務請求,并且驅動層接收到任務后不再接收新的任務請求,僅當本次任務結束后,該函數任務狀態標識被再次修改,標識允許驅動層繼續接收新的任務;
步驟四、驅動層將接收到的任務分解,根據Eeprom單次最大允許讀寫字節個數將任務分解為單個或多個驅動子任務,根據SPI與Eeprom通訊時序要求,每個驅動子任務包含一個或多個時序子任務,SPI接收和發送任務均觸發中斷并交由DMA處理任務;
步驟五、驅動層接收到應用層的任務請求后,將驅動子任務標識以及時序子任務標識置為busy,當驅動子任務分解的時序子任務數≥1,且讀寫字節數>1時,使能SPI發送中斷、SPI接收中斷以及DMA接收中斷,設置DMA發送和接收搬運時序子任務個數并強制觸發SPI發送中斷,當DMA搬運了當前時序子任務需要搬運個數時觸發DMA接收中斷,在DMA接收中斷里判斷當前時序子任務是否是最后一個驅動子任務,如果不是,則繼續搬運下一個時序子任務,如果是,則將時序子任務狀態標識置為idle,如果當前是最后一個驅動子任務且為最后一個時序子任務,則將驅動子任務和時序子任務狀態標識置為idle,允許驅動層接收新的任務,此時臨時任務可以繼續加入任務隊列,系統上電讀或者下電寫任務可以指向下一個Eeprom塊的索引號;
步驟六、當驅動子任務分解的時序子任務數為1,且讀寫字節數等于1時,僅使能DAM接收中斷、SPI接收中斷,降低中斷頻率,減小CPU負載,并直接將該字節寫入SPI發送數據緩存區,當DMA搬運時序子任務完成后觸發DMA接收中斷。
2.根據權利要求1所述的分層任務系統的SPI與Eeprom異步通訊方法,其特征在于:所述應用層發送的任務包括控制命令、Eeprom塊起始地址、RAM地址以及數據長度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海大郡動力控制技術有限公司,未經上海大郡動力控制技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711450274.0/1.html,轉載請聲明來源鉆瓜專利網。





