MC9S12相關模塊

{//覆蓋率
在軟件設計和編寫之前,應該定義好它期望達到的語句覆蓋率。代碼的設計和編寫應該
能使其在測試中達到很高的語句覆蓋率。
}
{//PWM脈衝寬度調製。
脈衝寬度調製是一種模擬控制方式,其根據相應載荷的變化來調製晶體管基極或MOS管柵極的偏置,來實現晶體管或MOS管導通時間的改變,
從而實現開關穩壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恆定,是利用微處理器的數字信號對模擬電路進行控制的一種非常有效的技術。

1.每一個PWM 的輸出通道都有一個使能位 PWMEx。它是用來啓動和關閉波形輸出的。
2.每一個PWM 的輸出通道都有一個使能位 PWMEx。它是用來啓動和關閉波形輸出的。
3.每一個 PWM 輸出通道都有兩個時鐘可供選擇(A、SA或 B、SB)。0、1、
    4.0、1、4、5 通通道可選用 A、SA 時鐘,2、3、6、7 通道可選用 B、SB 通道。此寄存器在任何時
    間都是可讀、可寫的,復位時全置0。應當注意的是,如果當一個 PWM輸出波形正在
    產生時,時鐘改變,這時就會產生一個平頭的或線形脈衝。
    5.PWMPRCLK寄存器是單獨用來給時鐘源 A、B進行預分頻的。
    6.PWMCAE 寄存器包含 8 個控制位來對每個 PWM 通道設置左對齊輸出或居中對齊輸出。
    應當注意的是,只有輸出通道被關閉後才能對其進行設置,即通道被激活後不能對其進行設置。
    7.時鐘SA是通過對PWMSCLA寄存器的設置來對A時鐘進行分頻而產生的。  
其計算公式爲: 
              Clock SA=Clock A /(2*PWMSCLA) 
    時鐘SB與SA的工作原理同
    其計算公式爲: 
              Clock SB=Clock B /(2*PWMSCLB)
    8.佔空比的計算方法: 
當PPOL=0 時: 
             佔空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
當 PPOL=1 時: 
佔空比=(PWMDTYx/ PWMPERx)*100% 
9.CAEx=0即當爲左線性輸出時: 
        PWMx輸出頻率=時鐘頻率/ PWMPERx   /*個寄存器的值就決定了相關PWM 通道的週期。*/
            當 PPOLx=0時 
            佔空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
            當 PPOLx=1時 
佔空比=[PWMDTYx/ PWMPERx]*100% 
CAEx=1即當爲居中線性輸出時:
PWMx 輸出頻率=時鐘頻率/(2* PWMPERx) 
           當 PPOLx=0時 
           佔空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
           當 PPOLx=1時 
佔空比=[PWMDTYx/ PWMPERx]*100% 
10.PWMPERx寄存器 
PWMPERx 寄存器共有 8 個,每一個通道都有一個這樣的週期寄存器。這個
寄存器的值就決定了相關PWM 通道的週期。 每一個通道的週期寄存器都是雙緩
衝的,因此如果當通道使能後,改變他們的值,將不會發生任何作用
週期的計算方法: 
1)  當 CAEx=0時,即進行左線性輸出時: 
PWMx 週期=通道時鐘週期*PWMPERx 
2)  當 CAEx=1時,即進行居中對齊輸出時: 
PWMx 週期=通道時鐘週期*(2*PWMPERx) 
11.PWMDTYx寄存器 
這個寄存器的值就決定了相關PWM 通道輸出波形的佔空比。
當計數值與佔空比常數 PWMDTY相等時,則比較輸出器有效,這時就會將
觸發器置位,然後PWMCNT繼續計數,當計數值與週期常數PWMPER相等時,
比較器輸出有效,將觸發器復位,同時也使 PWMCNT復位, 結束一個輸出週期。

}

{//RTI中斷服務指令
在中斷服務程序中用於返回中斷指令,在運行中斷之前,用JSR指令將PC(程序計數器)和SR(狀態寄存器)壓入堆棧,當中斷服務程序結束
時,執行RTI或RTIS指令,將PC和SR從堆棧中彈出。
}
{//上電覆位
上電壓從無到有在RESET處會先處於高電平一段時間,然後由於該點通過電阻接地則RESET該點的電平會逐漸的改變爲低電平,從而使得單片機復
位口電平從1到0,達到給單片機復位的功能。這樣一種復位方式就是所謂上電覆位。
}
{//看門狗餵狗條件
餵狗標誌爲0,餵狗時間到達。其中看門狗餵狗條件是—32位數據,在初始化對每一個任務對應的位置1,任務執行後清0。
}
{//定時器編程步驟
1、初始化: 
設定預分頻係數,設定工作方式,定時器溢出中斷使能,定時器使能 
2、中斷函數 
用戶自己的代碼,清標誌位 
void ECT_Init(void)   

  TSCR2_PR   = 7;  //預分頻係數爲 8 
   ………………….. 
  TSCR2_TOI  = 1;  //定時器溢出中斷使能 
  TSCR1_TEN  = 1;  //定時器使能 

#pragma CODE_SEG __NEAR_SEG NON_BANKED 
void TimerOverFlow(void) 

    //用戶自己的代碼 
TFLG2_TOF  = 1;  //清楚定時器溢出中斷標誌位 

}
{//#pragma data_seg介紹  
1,#pragma data_seg()一般用於DLL中。也就是說,在DLL中定義一個共享的,有名字的數據段。最關鍵的是:這個數據段中的全局變量可以被多個進程共享。
否則多個進程之間無法共享DLL中的全局變量。


2,共享數據必須初始化,否則微軟編譯器會把沒有初始化的數據放到.BSS段中,從而導致多個進程之間的共享行爲失敗。

3,你所謂的結果正確是一種錯覺。
DLL:----->動態鏈接庫英文爲DLL,是Dynamic Link Library 的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數據的庫,DLL不是可執行文件。
}
{//CAN總線
CAN 是Controller Area Network 的縮寫(以下稱爲CAN),是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、
低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,
線束的數量也隨之增加。爲適應“減少線束的數量”、“通過多個LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 
通信協議。此後,CAN 通過ISO11898 及ISO11519 進行了標準化,在歐洲已是汽車網絡的標準協議。

另外,與其它現場總線比較而言,CAN總線是具有通信速率高、容易實現、且性價比高等諸多特點的一種已形成國際標準的現場總線。這些也是CAN總線應用於
衆多領域,具有強勁的市場競爭力的重要原因。
}

{//LIN總線
LIN(Local Interconnect Network)是一種低成本的串行通訊網絡,用於實現汽車中的分佈式電子系統控制。LIN 的目標是爲現有汽車網絡(例如CAN 總線)提供輔助功能,
因此LIN總線是一種輔助的總線網絡。在不需要CAN 總線的帶寬和多功能的場合,比如智能傳感器和制動裝置之間的通訊使用LIN 總線可大大節省成本。
LIN 技術規範中除定義了基本協議和物理層外還定義了開發工具和應用軟件接口。LIN 通訊是基於SCI(UART)數據格式,採用單主控制器/多從設備的模式。
僅使用一根12V 信號總線和一個無固定時間基準的節點同步時鐘線。這種低成本的串行通訊模式和相應的開發環境已經由LIN 協會制定成標準。LIN 的標準
化將爲汽車製造商以及供應商在研發應用操作系統降低成本。

LIN 的通訊規則
一個LIN 網絡由一個主節點一個或多個從節點組成,所有節點都有一個從通訊任務。該通訊任務分爲發送任務和接收任務,主節點還有一個主發送任務。
一個LIN 網絡上的通訊總是由主發送任務所發起的。主控制器發送一個起始報文,該起始報文由同步斷點和同步字節消息標誌符所組成。相應的,在接受
並且濾除消息標誌符後,一個從任務被激活並且開始本消息的應答傳輸。該應答由2/4/8 個數據字節和一個校驗碼所組成。起始報文和應答部分構成一個完整的報文幀。
怎樣正確組成LIN 報文幀由報文標誌符指示該報文的組成。這種通訊規則可以用多種方式來交換數據:由主節點到一個或多個從節點;由一個從節點到主節點或其他的
從節點,通訊信號可以在從節點之間傳播而不經過主節點或者主節點廣播消息到網絡中的所有節點。報文幀的時序由主控制器控制。
}
{//EEPROM
EEPROM (Electrically Erasable Programmable Read-Only Memory),電可擦可編程只讀存儲器--一種掉電後數據不丟失的存儲芯片。 EEPROM 可以在電腦上
或專用設備上擦除已有信息,重新編程。一般用在即插即用。
}
{//RS232
個人計算機上的通訊接口之一,由電子工業協會(Electronic Industries Association,EIA) 所制定的異步傳輸標準接口。通常 RS-232 接口以9個引腳 (DB-9) 
或是25個引腳 (DB-25) 的型態出現,一般個人計算機上會有兩組 RS-232 接口,分別稱爲 COM1 和 COM2。
}
{//上位機
是指可以直接發出操控命令的計算機,一般是PC/host computer/master computer/upper computer,屏幕上顯示各種信號變化(液壓,水位,溫度等)。

下位機是直接控制設備獲取設備狀況的計算機,一般是PLC/單片機single chip microcomputer/slave computer/lower computer之類的。
上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序信號直接控制相應設備。下位機不時讀取設備狀態數據(一般爲模擬量),
轉換成數字信號反饋給上位機。
簡言之如此,實際情況千差萬別,但萬變不離其宗:上下位機都需要編程,都有專門的開發系統。在概念上,控制者和提供服務者是上位機,被控制者和
被服務者是下位機,也可以理解爲主機和從機的關係,但上位機和下位機是可以轉換的。
}
{//大回零模式
不管指針實際在什麼位置,一律認爲當前位置是300度(或270度)。
}
{//XTAL
外部時鐘輸入,表示外部晶振,而外部晶振常常連接至單片機的引腳,常常使用XTAL加上數字表示連接外部晶振。一般是指時鐘電路引腳。

XTAL1:接外部晶振和微調電容的一端,在片內它是振盪器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。 


  XTAL2:接外部晶振和微調電容的另一端,在片內它是振盪器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳爲外部時鐘的輸入端。
}
{//TTL------->BJT-BJT邏輯門電路
全稱Transistor-Transistor Logic,即BJT-BJT邏輯門電路,是數字電子技術中常用的一種邏輯門電路,應用較早,技術已比較成熟。TTL主要有BJT
(Bipolar Junction Transistor 即雙極結型晶體管,晶體三極管)和電阻構成,具有速度快的特點。最早的TTL門電路是74系列,後來出現了74H系列,74L系列,74LS,
74AS,74ALS等系列。但是由於TTL功耗大等缺點,正逐漸被CMOS電路取代。TTL門電路有74(商用)和54(軍用)兩個系列,每個系列又有若干個子系列。

TTL電平信號:
TTL電平信號被利用的最多是因爲通常數據表示採用二進制規定,+5V等價於邏輯“1”,0V等價於邏輯“0”,這被稱做TTL(晶體管-晶體管邏輯電平)信號系統,
這是計算機處理器控制的設備內部各部分之間通信的標準技術。TTL電平信號對於計算機處理器控制的設備內部的數據傳輸是很理想的,首先計算機處理器控制的設
備內部的數據傳輸對於電源的要求不高以及熱損耗也較低,另外TTL電平信號直接與集成電路連接而不需要價格昂貴的線路驅動器以及接收器電路;再者,計算機處理
器控制的設備內部的數據傳輸是在高速下進行的,而TTL接口的操作恰能滿足這個要求。TTL型通信大多數情況下,是採用並行數據傳輸方式,而並行數據傳輸對於超過
10英尺的距離就不適合了。這是由於可靠性和成本兩面的原因。因爲在並行接口中存在着偏相和不對稱的問題,這些問題對可靠性均有影響。
TTL輸出高電平>2.4V,輸出低電平<0.4V。在室溫下,一般輸出高電平是3.5V,輸出低電平是0.2V。最小輸入高電平和最大輸入低電平:輸入高電平>=2.0V,
輸入低電平<=0.8V,噪聲容限是0.4V。TTL電路是電流控制器件,TTL電路的速度快,傳輸延遲時間短(5-10ns),但是功耗大。
}
{//ECT模塊----增強型捕捉定時器模塊
HC12 增強型捕捉計時器模塊在 HC12 標準定時器的基礎上增加了一些特點,用以擴展它的應用範圍,特別是在汽車 ABS方面。ABS----防鎖死剎車系統

ECT模塊有8個輸入捕捉和輸出比較(IC/OC)通道,當它們被配置爲輸入捕捉時,被稱爲IC通道。其中4個IC通道帶有保持寄存器,它們可以存儲2個不同的計數值
而不產生中斷,另外4個IC通道只有捕捉寄存器來保存一個計數值。

4個8爲脈衝累加器對應4個IC通道,它們都有自己的保持寄存器來保存計數值,而4個8位脈衝累加器又可以當作2個16位脈衝累加器來使用。

16位的模數減法計數器可以產生週期性的中斷,它同樣可以用來把IC寄存器和脈衝累加器中的值鎖存到對應的保持寄存器裏。

保持寄存器--指的是可以通過通信命令讀或者寫的寄存器,通常是一些功能控制寄存器或者輸出寄存器等。不同的設計中,有些保持寄存器是掉電保持;
有些則不。這個看需要,不一定的。
輸入寄存器--指的是隻能讀不能寫的寄存器,通常是狀態寄存器或者是輸入結果寄存器等。

ECT有兩個16位脈衝累加器,有4個8位脈衝累加器。這裏的多少位,是說明結果寄存器是多少位的。16位的
脈衝累加的結果可以達到65535,8位的可以達到255,一般是用來測外部脈衝信號個數和頻率的。比如測速,
速度傳感器把速度轉化爲脈衝,測得脈衝就可以知道速度了。還有一些傳感器,比如測功率的芯片,輸出也是
脈衝,通過單位時間裏測脈衝的個數,便知道負載的功率了。
--------------------------------------------------------------------------------------------------------------------------------------
ECT模塊的工作模式: 1、停止模式(STOP)--定時計數器不工作,時鐘停止。
2、凍結模式(FREEZE)--定時計數器是否工作,需要參考TSFRZ的狀態 TSFRZ------定時器系統寄存器1--TSCR1的bit5--該位不會停止脈衝累加器
|--0 在此模式下仍允許定時器運行
|--1   在此模式下仍不允許定時器運行
3、等待模式(WAIT)--定時計數器是否工作,需參考TSWAI的狀態 TSWAI-----定時器系統寄存器1--TSCR1的bit6--該位會影響脈衝累加器
|--0 在此模式下仍允許定時器運行
|--1   在此模式下仍不允許定時器運行
4、正常模式(NORMAL):定時計數器一直工作直到被禁止。

主定時器的計數器頻率 = 總線時鐘頻率 / 2^預分頻因子

PAI:脈衝累加器輸入中斷允許位。--------->0:禁止輸入中斷 1:當 PAIF置位時申請中斷。
PACTL:脈衝累加器A控制寄存器-------->寄存器 PACTL決定了 PAI 的工作方式及其參數,還包括PAI 的啓動、確定定時器系統的時鐘信號源、中斷管理等
詳見MC9S12-----p30

TIOS:選擇寄存器------->TIOS 寄存器用於指定各個通道的功能,即工作於IC還是 OC方式。當某個位 IOSn=0 時,對應的通道 n 爲輸入捕捉(1C)通道,
否則當 IOSn=1 時,通道 n爲輸出比較(OC)通道。

OC7M:屏蔽寄存器
TCNT:定時器核心寄存器---------->TCNT是遞增計數器,它不停地對內部時鐘信號計數、程序可隨時讀取,但在普通模式下禁止寫入。
TCNT應按字訪問,分別訪問高、低字節可能得到錯誤的結果。 在特殊模式下,TCNT 可寫,但因爲寫操作與預分頻器時鐘不同步,TCNT
寄存器寫入後,其第一個週期可能是一個不同的值。

TSCR1:計時器系統控制寄存器 1-------->TSCR1 寄存器是定時器模塊的總開關,它決定模塊是否啓動以及在中斷等待、BDM 方式下的行爲,
還包括標誌的管理方式。

BDM:BDM(Background Debugging Mode)是摩托羅拉公司支持的一種OCD的調試模式。通過BDM接口可以完成基本的調試功能,例如:
設置斷點、讀寫內存、讀寫寄存器、下載程序、單步執行程序、運行程序、停止程序運行等。

TSCR2:計時器系統控制寄存器 2-------->p27
ICSYS:輸入系統控制寄存器--------------->p35

ECLK/64時鐘進行計數,輸入引腳上有效電平結束時的跳變沿將停止計數,同時置位中斷標誌。如果允許脈衝累加器中斷,則產生一次中斷申請。

MCU:微程序控制器------>隨着大規模集成電路的出現及其發展,將計算機的CPU、RAM、ROM、定時計數器和多種I/O接口集成在一片
芯片上,形成芯片級的計算機,爲不同的應用場合做不同組合控制。
}
{//ATD模塊
模數轉換原理:
1.模擬信號依次通過抽樣和保持(S/H)電路和模擬轉換器(A/D)後轉換爲數字格式。
2.抽樣和保持電路以均勻間隔對模擬信號進行抽樣,並且在每個抽樣運算後在足夠的時間內保持抽樣值恆定,以保證輸出值可以被 A/D轉換器精確轉換。 
3.下一步是通過模數轉換器將抽樣和保持電路的輸出轉換爲數字形式。模數轉換器的輸出通常表示爲二進制編碼的形式。 
4.轉換精度由分辨率來表示,它由離散級數量決定。比如,對一個以二進制形式編碼的長度爲 N 位的長的輸出,有效地離散級數量是 2 的 N 次方,分辨率爲
離散數量級的倒數。
}
{//SCI模塊------SCI 是一種採用 NRZ 格式的異步串行通信接口,它內置獨立的波特率產生電路和 SCI 收發器,可以選擇發送 8 或 9 個數據位(其中一位可以指定爲奇或偶
校驗位)。
數字信號可以直接採用基帶傳輸,所謂基帶就是指基本頻帶。基帶傳輸就是在線路中直接傳送數字信號的電脈衝,這是一種最簡單的傳輸方式,近距離通信的局域網
都採用基帶傳輸。
不歸零碼(NRZ,Not Return to Zero)

SCI 是全雙工異步串行通信接口,主要用於 MCU 與其他計算機或設備之間的通信,幾個獨立的 MCU也能通過 SCI 實現串行通信,形成網絡。
}
{//SPI模塊
 串行設備接口SPI 主要用於同步串行通信,它使 MCU 具備了與外圍設備以及其他微處理器進行同步通信的能力,也能夠在多主系統中實現處理器間的通信。
}
{//上下拉電阻
上拉就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用。下拉同理。也是將不確定的信號通過一個電阻鉗位在低電平。
上拉是對器件輸入電流,下拉是輸出電流;強弱只是上拉電阻的阻值不同,沒有什麼嚴格區分;對於非集電極(或漏極)開路輸出型電路(如普通門電路)
提升電流和電壓的能力是有限的,上拉電阻的功能主要是爲集電極開路輸出型電路輸出電流通道。
}
{//異常復位的檢查
復位要區分是上電覆位還是其他因素。
如果是上電覆位則需要對保護區的變量從新賦初值否則回事隨機數。
如果是其他復位則ARM中的數據不會丟失,不需要對其賦初值。
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章