?? ——分時操作系統思想在單片機編程中的實現.htm
字號:
<P> 除了以上主程序的調度設計外,各個作業中共同的功能應放在中斷中實現,主要是放在定時器中斷。如計時功能應放在定時器定時中斷中實現,定時參數的選擇應考慮到系統各個作業中各種計時的要求,定時頻率一般為最小計時頻率的整數倍。任何軟件延時都是不允許的。
實現分時控制的關鍵是在于合理地將系統的功能分解成各個作業模塊。作業模塊分得越細系統的實時性就越好。雖然單片機的時鐘頻率較低,在實際應用中當各個作業模塊被細分成各個“動作”及簡單的運算后,分時系統的實時性是能得到保證的。缺點就是各“路”的控制處理程序被分割得支離破碎,模塊化得不到保證。</P>
<P><B>二、應用實例</B></P>
<P> 1.系統硬件及工作原理</P>
<P> 賓館用的視頻點播系統VOD(Video On
Demand)中,從各個機定盒送出的上行信號用DTMF碼通過電話線傳輸到機房的主控制柜中的上行信號采集卡中。為了能同時接受多個用戶的點播操作,上行信號采集卡必須有接受多路電話傳輸信息的功能,為此,筆者設計了8路電話采集卡,可同時接受8路用戶的點播操作,系統硬件框圖如圖1所示。<BR><IMG
height=332 hspace=10 src="——分時操作系統思想在單片機編程中的實現.files/1a.gif"
width=549 vspace=10
border=0><BR> 每路大致的主程序是:檢測到振鈴信號后(即為振鈴檢測腳變低并保持8ms以上),繼電器吸合,同時馬上給機定盒回一接通信號——#鍵(保持400ms)。然后等待機定盒發送點播信息:客房號、點播的節目號,共4位DTMF碼;若1s內無DTMF碼收到(收到表示為解碼芯片的DV腳變高)表示操作有誤,繼電器斷開,狀態位復原,作業指針回0。收齊4位DTMF碼后將其整理并帶上該路的標志,轉化成3字節送到串行發送緩沖區,在定時器中斷服務程序中發送。等待視頻服務器回送應答信息,根據應答信息不同向機定盒回送不同的信息;若超時無應答也向機定盒回送一碼(發碼時間都為100ms)。最后,繼電器斷開,狀態標志復原,緩沖區清0,作業指針也回到0。一個過程完成。</P>
<P> 2.作業流程</P>
<P> 為了能實現8路分時工作,最主要的工作是將這一過程細分成一個個作業。筆者通過設計把它分成8個作業,各作業的流程如圖2所示。
以上每一作業返回后,“路”指針自動加1,到8后回到0,以保證分時工作合理。<BR><IMG height=505 hspace=10
src="——分時操作系統思想在單片機編程中的實現.files/1b.gif" width=548 vspace=10
border=0><BR> 3.幾點技巧</P>
<P> 8路電話信息采集卡的編程中,為了使程序更精練,筆者應用以下3個技巧:</P>
<P>①
因為這8路的工作是相同的,程序可以共用,只須再構造1“路”地址表,每一表項含有本路的輸入鎖存器地址、輸出鎖存器地址、DTMF碼存放RAM地址、計時單元地址。這樣可以省掉“路”調度表,因為各路相同作業的入口地址是相同的。根據“路”指針的不同,帶入該“路”的地址表項,即可用相同的程序對8路分別控制操作。</P>
<P>②
定時器中斷設置成4ms一次,這是因為電話振鈴是25Hz,檢測腳保持低電平的時間為10ms,它是最低的計時值。當振鈴檢測腳低電平保持時間少于8ms時可認為是干擾。每一路都有自己的計時單元,每次定時器中斷后,在定時服務自程序中各路計時單元自動加1。在上一次作業中將計時單元請0,下一次作業讀出計時單元的值,延時值即為該值乘以4ms。這樣任何延時都不占用CPU機時。</P>
<P>③
串行數據的發送和接收是8路共有的操作,采用共同的模塊。數據的鏈接是通過開辟緩沖區實現的,有發送緩沖區和接收緩沖區,采用4800baud的波特率。一般程序的串行數據發送時,都須要檢測TI位的變化來判斷1字節數據發送是否完成,由此決定可否發下一字節數據。應用到分時系統是行不通的,這要占用CPU機時,因為采用4800baud的波特率,則每一字節的發送時間少于4ms。當發送緩沖區有數據時,可在定時器中斷服務自程序中發送。每一次定時中斷中發送1字節數據,當下一次定時中斷來時,上一字節數據必定已發送完畢,可發送下一字節數據。無須檢測TI位,也不占用CPU機時。數據接收采用串行中斷,接收到的數據存放到接收緩沖區供各路查詢。</P>
<P><B>結論</B></P>
<P> 將分時操作系統的思想引入單片機系統,提出了一個針對多路檢測控制的單片機系統軟件編程。大大減低了系統的設計成本,提高了系統的性能價格比,并在實際應用中獲得成功。
</P>
<P></P></DIV></TD></TR>
<TR>
<TD align=middle height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV></DIV></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2>
<TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
<TBODY>
<TR>
<TD width=75>【<A href="javascript:doPrint();">打印本稿</A>】</TD>
<TD width=8></TD>
<TD width=75>
<P>【<A
href="http://www.21ic.com/new_info/news/review.asp?title=分時操作系統思想在單片機編程中的實現target="
_blank?>發表評論</A>】</P></TD>
<TD width=10></TD>
<TD width=79>【<A
href="http://www.21ic.com/new_info/news/sendmail.asp?num=分時操作系統思想在單片機編程中的實現">推薦</A>】</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2></TD></TR>
<TR>
<TD align=right height=2><A href="javascript:window.close();"><IMG
height=20 src="——分時操作系統思想在單片機編程中的實現.files/close_c.gif" width=77
border=0 name=Image161></A><FONT
color=#ffffff>----</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width=520 align=center border=0>
<TBODY>
<TR>
<TD vAlign=bottom align=middle width=114 bgColor=#999a76
height=1><IMG height=1 src="——分時操作系統思想在單片機編程中的實現.files/blank.gif"
width=1></TD>
<TD width=466 height=1></TD></TR>
<TR>
<TD align=middle width=114 bgColor=#ece8db height=19>相關新聞</TD>
<TD width=466 height=19></TD></TR>
<TR bgColor=#999a76>
<TD colSpan=2 height=1><IMG height=1
src="——分時操作系統思想在單片機編程中的實現.files/blank.gif" width=1></TD></TR>
<TR>
<TD colSpan=2 height=1></TD></TR></TBODY></TABLE>
<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=520
align=center border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE class=RelatedTable width="100%" border=0>
<TBODY>
<TR class=RelatedTr>
<TD class=RelatedTd>
<SCRIPT language=javascript
src="——分時操作系統思想在單片機編程中的實現.files/about.htm"></SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD>
<TD vAlign=top align=middle width=150 bgColor=#ece8db height=2>
<TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#000000>
<TABLE cellSpacing=0 cellPadding=2 width=150 bgColor=#ece8db
border=0>
<TBODY>
<TR>
<TD>
<META content="Microsoft FrontPage 5.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><BR><A
href="http://www.hhcn.com/chinese/cnindex.html"
target=blank>華恒<BR>(ARM,PowerPC,冷火,龍珠)</A><BR><A
href="http://www.embedon.com/" target=blank>遠峰</A> <BR><A
href="http://www.21ic.com/custom/jhb/index.htm"
target=blank>復旦金海博</A><BR><A
href="http://www.emdoor.com/index.asp"
target=blank>億道</A><BR><BR>單片機 <BR><BR><A
href="http://www.hk.renesas.com/"
target=blank>Renesas</A><BR><A
href="http://www.zlgmcu.com/tools/kaifaban.asp"
target=blank>周立功 Philips</A> <BR><A
href="http://www.strong-ic.com/" target=blank>勝創特</A> <BR><A
href="http://www.holtek.com.tw/" target=blank>盛群 Holtek</A>
<BR><A href="http://www.xhl.com.cn/"
target=blank>Cygnal單片機</A><BR><A href="http://www.lierda.com/"
target=blank>利爾達MSP430</A> <BR><BR>接口電路:<BR><BR><A
href="http://www.whjmw.com/" target=blank>金邁威</A> <BR><A
href="http://www.21ic.com/custom/maiwei/mw.htm"
target=blank>邁威</A> <BR><A href="http://www.rs232.net.cn/"
target=blank>瑞賽特</A><BR><BR><BR>存儲器<BR><A
href="http://www.huazhoucn.com/"
target=blank>鐵電存儲器免費樣品</A><BR><BR><BR>模擬器件<BR><A
href="http://www.unique-ap.com.cn/"
target=blank>Linear</A><BR><BR><BR>編程器<BR><A
href="http://www.xeltek.com.cn/"
target=blank>西爾特編程器</A><BR></TD></TR>
<TR>
<TD
height=5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top colSpan=6></TD></TR>
<TR>
<TD vAlign=top colSpan=6 height=10></TD></TR>
<TR>
<TD vAlign=top bgColor=#999999 colSpan=6 height=2></TD></TR>
<TR>
<TD class=stxt vAlign=center align=middle colSpan=6
height=6></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD class=s width=973 height=12></TD></TR>
<TR>
<TD class=s width=973 height=20>
<DIV align=center><FONT face="Arial, Helvetica, sans-serif"><!--start copyright-->
<DIV align=center><FONT color=black>
<TABLE cellSpacing=0 cellPadding=0 width=600 align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%" colSpan=2><BR>Better View:800*600 Best
View:1024x768 為了本系統能夠更好的為您服務,請使用IE4.0或以上版本瀏覽器
<BR><BR>版權所有(C)21IC中國電子網 電話:010-82357510, 82357511 傳真: 010-82357512
</TD></TR></TBODY></TABLE><!--start copyright--></FONT></DIV></FONT></DIV></TD></TR></TBODY></TABLE><BR></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -