以MXS51為內核構造的單片集成系統
摘要:介紹一種以MCS51為核,加上FSK、DTMF、數字調制/解調等外國電路組成的控制系統。在類(lèi)似控制系統中,如何滿(mǎn)足系統要求且與MCS51微處理器兼容和如何減少系統面積是設計中的兩大關(guān)鍵問(wèn)題。通過(guò)分析MCS51的指令和時(shí)序關(guān)系,設計出具有自主知識產(chǎn)權的與MCS51兼容的微處理器,完成它與外國電路集成和自測試電路的插入。該系統在FPGA和門(mén)陣列上分別進(jìn)行了布局布線(xiàn)和后仿真,并通過(guò)了FPGA的原型樣機測試。 關(guān)鍵詞:SFR 特殊功能寄存器 FSK 頻移鍵控 DTMF 雙音多頻 引言 隨著(zhù)電信市場(chǎng)的日益開(kāi)放、競爭、運營(yíng)商面蜊更大的壓力,須提高投資回收效率,提高固定電話(huà)的ARPU值。中國移動(dòng)推出出的短信息服務(wù)取得了很好的經(jīng)濟效果和社會(huì )效益,短信正以其特有的快捷和方便,影響著(zhù)人們日常生活的許多方面。“固定電話(huà)信息化”和相關(guān)標準的出臺,固定電話(huà)的廠(chǎng)商也推出類(lèi)似的服務(wù),從而實(shí)現傳統電話(huà)的增值。 但固網(wǎng)短信存在兩方面的“瓶頸”;在終端和內容上均有缺失。在終端方面是價(jià)格問(wèn)題,應該考慮如何將價(jià)格降到用戶(hù)可以接受的范圍。 本系統就是針對這樣的市場(chǎng)需求而設計。它需要1個(gè)滿(mǎn)足系統要求的微處理器、1個(gè)大的字庫來(lái)支持。同時(shí),該芯片必須控制在一定面積下,以降低成本。 本文將著(zhù)重介紹與MCS51兼容的微控制器的設計和DTMF解碼中的數據處理。
本文引用地址:http://dyxdggzs.com/article/201610/307580.htm
1 與MCS51兼容的微控制器設計 Intel MCS51系列是一種8位微處理器。外部程序與數據存儲器的尋址范圍可達到64K.MCS51有5個(gè)中斷源,其中2個(gè)為外部中斷源,每個(gè)中斷源的優(yōu)先級是可編程的。為了滿(mǎn)足固網(wǎng)短信系統功能需求。主要對MCS51進(jìn)行如下三方面的擴展。SFR擴展、存儲器擴展,外部中斷擴展。 1.1 SFR擴展 為了與MCS51兼容。把FSK、DTMF中的控制寄存器和狀態(tài)寄存器MCS51的SFR統一編址。這樣8051管理、控制、監視FSK、DTMF時(shí),可將FSK、DTMF對應的地址看作是片內數據存儲器的直接地址。因此,可以使用片內數據存儲器相同的操作方法,不用增加指令來(lái)完成這些功能,這種結構的擴展可以看作是MCS51內部總線(xiàn)的擴張和把FSK、DTMF看成MCS51的兩個(gè)擴展的內部模塊,結構如圖1所示。

1.2 存儲器擴展 因為固網(wǎng)系統需要一個(gè)龐大的字庫來(lái)支持,所以MCS51的64KB存儲能力是不夠的。通過(guò)添加一個(gè)MMU模塊,將CPU該存能力擴展到2MB。當CPU訪(fǎng)問(wèn)外部存儲器時(shí),先用16位的邏輯地址高位進(jìn)行頁(yè)表查詢(xún),得到相應的擴展地址,然后將擴展地址和邏輯地址的低位一起構成21位的物理地址,來(lái)完成對外部存儲器的操作,數據通路如圖2所示。 1.3 外部中斷的擴張 為了讓系統能舊電故障等異常事件中斷請求信號,保留了MCS51原來(lái)的兩個(gè)外部中斷源,同時(shí)增加了7個(gè)外部中斷和相應的3個(gè)寄存器,分別用于鎖存中斷、屏蔽中斷和對中斷的優(yōu)先級進(jìn)行控制。如圖3所示。 中斷的實(shí)現,CPU在每一個(gè)機器周期預序檢查每一個(gè)中斷源,如果發(fā)現有中斷請求且沒(méi)有在處理相同或更高的優(yōu)先級中斷,CPU就處理該中斷。先得相應的優(yōu)先級狀態(tài)位置位,然后捃一個(gè)硬件子程序。該子程序把中斷處理程序的入口地址送到程序計數據。各中斷源程序的入口地址如表1.中斷處理程序從該地址開(kāi)始一直執行到RETI指令為止,然后將相應的優(yōu)先級級位清0. 表1 中斷服務(wù)程序的入口地址 中 斷 名 稱(chēng)中斷入口 Fsk接收中斷 002B Cas中斷 003B Fsk發(fā)送中斷 003B 極性反轉中斷 0043 摘機中斷 004B 門(mén)控時(shí)鐘中斷 0053 看門(mén)狗中斷 005B 2 DTMF數據處理 DTMF解碼數據處理主要完成兩個(gè)功能,一是數據截取,一是DTMG解碼。 2.1 數據截取 根據抽樣速率和DTMG占空比及持續時(shí)間,可以對接收的數據進(jìn)行截斷。根據FFT的要求,前后兩段數據之間應該有一定長(cháng)度的公共部分。計算出截新的數據幀的長(cháng)度為128字。為了減少面積,我們比較了幾個(gè)方案。在不會(huì )出現溢出的情況下,最后采取了圖4所示的設計方案。 圖3 數據截取由一個(gè)256字的雙口RAM完成。復位時(shí),對前32字清零。A/D采樣的數據幀先放到寫(xiě)數據段1中,再放到寫(xiě)數據段2中,按照寫(xiě)數據段1和寫(xiě)數據段2交替寫(xiě)入數據。在每次寫(xiě)完一個(gè)數據段之后,產(chǎn)生一個(gè)數據改變脈沖。用來(lái)表明已完成1幀數據,可以進(jìn)行數據讀取,從而啟動(dòng)數據讀取操作。 數據讀取時(shí),為了保證每次數據讀取時(shí)與前后兩段都有32字的公共部分,第一次從讀數據段1中讀出160字的數據,其前32字的數據為上一幀數據的最后32 字的數據;下一次在讀數據段2中讀出160字的數據,然后兩個(gè)數據段讀出數據前后之間都有32字的共有數據。 2.2 DTMF解碼 對于DTMF解碼中用到的FFT,我們采用經(jīng)典的Goertzel算法。其思想是利用簡(jiǎn)單的遞歸運算代替復雜的FFT運算,且只需要計算幾個(gè)頻率占上的值,大大簡(jiǎn)化了計算量,通過(guò)比較幾個(gè)頻率點(diǎn)上數值的大小和判斷占空時(shí)間,就可確定發(fā)送的DTMG頻率組合。為了減少設計中用到的乘法驗證,在滿(mǎn)足通信標準的前提下,將寬度降到12位。Goertzel算法的計算公式如下:

3 其它外圍電路 該系統除了MCS51.FSK、DTMG外,再加上門(mén)控時(shí)鐘??撮T(mén)狗、數字調制/解調等其它電路就構成了完整的以MCS51為核的單片集成系統。

門(mén)控時(shí)鐘主要功能就是在系統工作時(shí)提供系統時(shí)鐘;在系統空閑時(shí),使系統處于下電狀態(tài),所有的時(shí)鐘都關(guān)掉,所有的操作也就停止,直到系統被喚醒,這樣就將系統功耗降低到最小值。 看門(mén)電路是一個(gè)可編程的邏輯電路,它可以被用作系統監視器,也可以只作為一個(gè)簡(jiǎn)單的計時(shí)器。同時(shí)它的時(shí)間寬度可以通過(guò)編程來(lái)設成2 12、2 13、2 18或2 21個(gè)時(shí)鐘寬度。 結語(yǔ) 該系統是一個(gè)典型的以MCS51為核心。加、DTMG以及門(mén)控時(shí)鐘等外圍電路組成的控制系統。我們采用自頂向下的設計方法。系統中所有功能模塊均采用 VHDL語(yǔ)言進(jìn)行描述;用FPGA實(shí)現的集成系統替換原來(lái)的系統通過(guò)了功能測試。不但在可靠性上得到了提高,而且滿(mǎn)足芯片面積的要求,達到降低成本的目的。
評論