色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > 基于S12 MagniV系列的LIN Bootloader設計

          基于S12 MagniV系列的LIN Bootloader設計

          作者:曹學余 王鈺博 孫濤 時間:2017-02-23 來源:電子產品世界 收藏

          引言
                (Local Interconnect Network)是一種低成本的串行通 訊網絡,用于實現(xiàn)汽車電子系統(tǒng)的分布式控制。在不需要

          CAN總線的應用場合,比如智能傳感器和BCM之間的通訊, 使用總線可大大節(jié)省成本。而且在智能傳感器或智能執(zhí)

          行器等基于通訊的模塊中,也需要實現(xiàn)用戶程序的引導 啟動和固件自更新的功能。因此,基于LIN總線的

          是汽車網絡節(jié)點的一個重要功能。

          1 S12 Magniv特點
          是面向汽車應用的高度集成且易用的混合信 號微控制器系列,提供單芯片解決方案簡化了系統(tǒng)設計。 S12

          MagniV基于成熟的S12技術,整個產品組合的軟件和工 具均兼容。系列以優(yōu)化的方式集成了數(shù)字編程能 力

          和高精度模擬電路,配有一組可擴展的存儲器,并采用基 于革新的LL18UHV技術的新型單片器件,簡化了汽車電子 的

          設計。目前的S12 Magniv系列中,S12VR(圖1)系列可以

          本文引用地址:http://cafeforensic.com/article/201702/344375.htm

          圖1  S12VR系列
          實現(xiàn)防夾車窗、防夾天窗等應用,S12ZVM系列可以實現(xiàn)汽
          車油泵、水泵、風機等應用,S12ZVL系列可以實現(xiàn)各類LIN 子節(jié)點應用。這些系列都集成了LDO和LIN收發(fā)器等模擬電

          路,從而可以實現(xiàn)簡化系統(tǒng)設計!

          2 LIN 軟件設計
          2.1   LIN 程序流程及內存分配
          Bootloader引導程序固化在芯片內部, 在芯片上電或 復位后首先運行,以嘗試是否與外部建立通訊。若握手成 功,

          接收到特定的數(shù)據更新用戶程序。  若通訊超時, 則

          圖2  LIN Bootloader程序流程  

          圖3  S12VR 內存分配
          從 Bootloader 程序直接跳轉到用戶程序的啟動向量,關閉 Bootloader 中斷源,初始化 SP并且寫中斷重定向寄存器

          為用 戶應用程序向量表的起始位置,并進入用戶應用程序,如圖2所示。
          由于S12 Magniv上電或復位后先運行  Bootloader 程序, 因此需要設定 Bootloader 程序的中斷向量表放在默認位置

          。 同時重定向用戶應用程序的向量表,避免和Bootloader 程序 的中斷向量表重合。Bootloader 程序執(zhí)行完畢后,跳

          轉至用 戶應用程序運行。如圖3所示S12VR的內存分配。

          圖4   LIN bootloader協(xié)議  


           圖5   LIN 驅動結構框圖


          圖6   LIN 配置流程

          2.2   LIN通訊協(xié)議設計
          為了通過上位機或者LIN主節(jié)點更新S12 Magniv系列中 的應用程序功能,需要制定基于LIN輸線的Bootloader通訊
          協(xié)議,使S12 Magniv和主節(jié)點或上位機進行通訊,接受來
          自上位機發(fā)送的更新數(shù)據,同時發(fā)送一些Bootloader命令, 包括:(1)握手;(2)flash擦除;(3)開始傳輸S19;(4)進入 APP;(5)發(fā)送S19數(shù)據;(6)讀取Bootloader狀態(tài)。下圖4為 LIN Bootloader定義。
          飛思卡爾提供了符合 LIN2.1、LIN2.0 和 SAE2602 規(guī)范 的軟件包,可以幫助開發(fā)者非常方便快速地開發(fā)出 LIN 通 訊程序。圖  5 為飛思卡爾的  LIN 驅動程序結構圖,LIN2.1
          Core API 和 J2602 Core API 可以實現(xiàn) LIN 的初始化以及應用 層與 core 層之間的信號傳遞功能,LIN2.1 TL層可以供測試
          者發(fā)起診斷請求,Low  Level 層處理程序與硬件之間的信號
          交互,比如字節(jié)發(fā)送、接收響應、Break 檢測等。
          該軟件包除了驅動程序之外,還提供了方便開發(fā)者使 用的圖形化配置工具 NCF GUI,該工具可以根據 LIN配置 描述文件 LCF 和節(jié)點描述文件 NCF 自動生成節(jié)點的配置.c 和.h 文件,將 LIN 代碼配置
          文件、 LIN 驅動程序和用戶 應用軟件一起編譯, 就可以 生成實現(xiàn) LIN 通訊的可執(zhí)行 程序,如圖6 所示。從而方便 開發(fā)者將更多的時間放在應 用程序上。
          2.3   Flash操作及保護
          Flash 儲存控制器是flash
          加速單元,提供 S12 Magniv 內核和 16位( S12) 或24位 (S 1 2 Z ) 程 序 F l a s h 之 間 的 接 口 。 程 序 F l a s h 可 擦 除 的 最 小 扇 區(qū) 僅 為 5 1 2  字 節(jié) , 而 且由于flash控制器塊只有一 個16bit內部總線,當flash控 制器在對flash進行操作時, 內核總線不能訪問此flash模 塊 , 也 就 無 法 運 行 存 儲 在 Flash模塊中的程序。所以S12
          Magniv在執(zhí)行 Flash操作的代

          圖7   flash操作代碼映射及復制  


          圖8   P-Flash Protection Function
          碼時,需要將代碼復制到 RAM 中運行。應到Bootloader工程 時,如圖7,需要對PRM文件中分配一塊memory SEG用來存 儲自ash操作代碼,同時將其映射到相應的RAM中以便將此代 碼運行在RAM中。
          在實際使用過程中,需要保護Bootloader程序完整,對 Bootloader程序存放的flash區(qū)域添加保護功能,防止被意外擦 除或寫入。Flash 模塊中的 FPROT 寄存器可以用來防止Flash 防止被誤寫入和擦除。保護的區(qū)域分為三部分,如圖8所示。

          3  S12 Magniv 平臺LIN Bootloader實現(xiàn)

          圖9  上位機程序
          3.1   LIN Bootloader平臺搭建
          在開發(fā)LIN Bootloader的過程中, 開發(fā)了基于PCAN- USB PRO LIN適配器的上位機程序(圖9)用來實現(xiàn)整個LIN Bootloader平臺。設置波特率為19200bps,選擇好燒錄的S19 文件,然后點擊發(fā)送,上位機開始發(fā)送握手協(xié)議命令。將 S12VR 上電,與上位機握手成功,就開始下載用戶運用程 序。
          3.2   App Code
          為了實現(xiàn)用戶應用程序中斷重定向,需要對應用程序 進行修改使它能夠滿足設計的 LIN Bootloader的要求。需要 修改工程中的 PRM 文件中的“MEMORY”分布和中斷向量 基地址寄存器。
          3.3   Bootloader性能
          基于S12VR的Bootloader性能如下:
          ? Bootloader Code size is about 4.5K;
          ? LIN Baudrate is 19.2K;
          ? 64k size S19 update can be finished in the 2 minites。



          關鍵詞: S12 MagniV LIN Bootloader

          評論


          相關推薦

          技術專區(qū)

          關閉