1 應用背景
在局域網、紅外線遙控、工業現場總線和有線視頻監控等通信系統中,普遍使用曼徹斯特碼作為數據編碼的方式。對曼徹斯特碼的解碼通常采用專用的解碼芯片,但是這種方法的通用性差。因為同樣是曼徹斯特碼。不同廠家有不同的編碼規則和不同的幀同步方式,因此解碼芯片不具備通用性,不能適用于一些特殊的曼徹斯特編碼。如果在信號接收端采用微處理器對其解碼,則具有通用性和靈活性。
Bosch和Philips公司的視頻監控系統中,控制中速和高速攝像機云臺動作的信號均采用曼徹斯特碼編碼傳輸。本文在開發解碼器的過程中發現所記錄的曼徹斯特碼與參考文獻[1—3]所描述的完全不同。此外在參考文獻[1—3]中敘述了采用單片機對曼徹斯特碼進行解碼的方法,但是都沒有給出曼徹斯特碼轉換為TTI。信號的詳細電路。而且由于曼徹斯特碼每1位的傳輸時間為32 ps,8位單片機的運行速度僅夠對其解碼而不能同時承擔其他工作。因此按照這種設計,在云臺解碼器中必須采用2個單片機,一個作為協議轉換器,另外一個單片機完成指令解析和控制云臺及攝像機等其他動作。本文采用的則是單一芯片解決方案,使用基于ARM(Advanced RISC Ma—chines)內核的微控制器I。PC2104,利用其運行速度快和定時精度高的特點,對曼徹斯特碼進行解碼并控制云臺和攝像機的其他動作。本文將詳細敘述Bosch和Philips公司的曼徹斯特碼編碼規則、曼徹斯特碼轉換為TTL信號的2種電路方案和軟件設計思想。
2曼徹斯特碼編碼規則
曼徹斯特碼以雙絞線為物理傳輸媒介,并采用差分信號進行傳輸,2根傳輸線分別為D+和D一。盡管曼徹斯特編碼規定采用電平跳變的方式來表示0和1,但是不同的設備制造商在實際使用過程中采用了不同特點的編碼方式。這體現在編碼規則和傳輸格式上的不同。例如,一般的曼徹斯特編碼規則是,由低電平到高電平的跳變代表邏輯0,由高電平到低電平的跳變代表邏輯1。但是在部分紅外線通信和有線視頻監控中,控制信號的傳輸卻采用r完沒有數據全相反的規則,即:由低電平到高電平的跳變代表邏輯1,由高電平到低電平的跳變代表邏輯0,傳輸時D+與D一之間的電位差為0。
圖1所示為Bosch和Philips公司的曼徹斯特碼編碼規則。
3 曼徹斯特碼轉換為TTL信號
差分信號必須轉換為TTL信號才能被微處理器識別。在T程應用中,實測的差分信號都不是標準的矩形,而是很不規則的近似于iF弦信號的波
形。因此還需要對信號進行整形。圖2是帶有同差的比較器電路,它的功能是對差分信號整形。同時將差分信號轉換為TTI,信號。圖3所示則采用r差分信號轉TTL信號的專用集成電路SN75176。轉換后的TTI,信號通過引腳PO.2,即定時器0的捕獲輸入口CAP0.0,進入I.PC2104。
4. 幀結構
圖4所示為圖2或圖3中記錄的曼徹斯特碼轉換為TTI。信號后的波形。它是Bosch公司用于遠程控制云臺的LTC5136鍵盤發出的一串指令中的1幀,包含完整的幀同步、幀數據和幀結束等部分。其傳輸的內容足l位起始位,8位數據位(圖中的數據為十六進制數87),1位奇
偶校驗位和l位停止位。
每個比特的傳輸時間為32 ps,它在電平上分為兩相,一個是高電平,一個是低電平。在32弘s的一半處。兩相發牛跳變,因此每相的持續時間均為16 ps。由低電平到高電平的跳變代表邏輯1,由高電平到低電平的跳變代表邏輯0。
可以看出,每個字節都是以1幀為單位進行傳輸的,每幀分為幀同步、幀數據和幀結束三個部分,每個部分的結構和特點如下:
①幀同步的作用是提示接收設備做好接收后續字節的準備,同時可以作為接收設備識別幀同步的時鐘信號。識別幀同步足正確接收后續字節的關鍵。幀同步的結構是。連續出現5個邏輯1,之后出現1個較寬的方波信號,低電平時間為48 ps,高電平時間也是48 lus,這個方波是幀同步信號的結束標志。
②數據部分包括1個起始位,8位數據位,1位奇偶校驗位和1位停止位。實際采用的是奇校驗。數據傳輸時,先傳輸最低有效位,后傳輸最高有效位。
③幀結束的標志為1個方波,其高電平和低電平的時間均為64弘s。
④幀與幀之間的間隔時間為304 ps。因此1幀的傳輸時間為1 040弘s,對應的波特率剛好為9 600 bps。
Philips公司的LTC8553和I.TC8800矩陣發送的曼徹斯特碼與上述Bosch公司的編碼有完全相同的地方,即幀同步和幀結束標志的結構都是完全一樣的,每1位的傳輸時間是一致的,對邏輯0和1的編碼規則是相同的,且都是奇校驗。不同之處在于,Philips公司的編碼將1條控制命令中的所有字節首尾相連地在1幀信號中發送,字節與字節之間沒有分隔開來,而Bosch公司的則是每傳輸1個字節都有完整的幀同步和幀結束標志。
5數據采樣
LPC2104有2個捕獲/比較定時器,即定時器0和定時器l,每個定時器除具備對外部信號的捕獲功能外還具備匹配功能。本系統中,曼徹斯特碼轉換為TTL信號后送入定時器0的捕獲信號輸入端CAP0.0。利用定時器0的捕獲功能捕捉并識別】幀信號的幀同步,利用定時器的比較功能去識別一幀的數據部分。圖5為程序框圖。
①同步信號的識別。識別同步信號的方法是,從一開始接收到方波時就捕捉方波的低電平和高電平時間,如果都是48 ps,則表明已經檢測到幀同步的標志。將LPC2104的定時器0的捕獲控制寄存器TOCCR設定為上升沿捕獲,即當輸入端CAP0.0的電平產生從0到1的跳變時,將計數器的值保存到捕獲寄存器CR0,并產生中斷。當產生中斷時,在中斷服務程序里判斷CR0的值是否在(48±5)ps范圍,如果正確,則將標志變量Flag置l,否則清零。無論是否為48肛s,都必須將CR0清零并將TOCCR設定為下降沿捕獲。當下降沿產生捕獲時,在中斷服務程序中對CR0的值,即脈沖高電平時間,進行判斷,如果在(48±5)/zs范圍且Flag為l,則表明幀同步的結束標志已經檢測到,否則將Flag清零。
②起始位的判斷。如果下降沿捕獲產生的中斷服務程序已經檢測到幀同步的結束標志,則將定時器0設定在比較功能,將匹配寄存器0的值設定為24 Ps,當產生匹配時復位定時器并產生中斷。在中斷服務程序中對CAP0.0引腳進行采樣。采樣點剛好落在起始位的后一相信號的中間位置,即1位數據傳輸時間的24 ps位置處,如圖6中箭頭所指位置。為了提高采樣數據的可靠性,在采樣點附近連續采樣3次,取其中2次相同的數據為最終結果。如果采樣得到的電平為0,則表明數據位為0,否則為1。如果最終采樣結果為1,表明起始位判斷成功,后面開始數據位的采樣。如果結果為0,表明該位并非起始位,因此需要重新進行同步信號的識別。
③數據位的采樣。如圖6所示,采樣點選取在每1位后一相的中間,即24弘s處。從起始位的采樣點開始,每隔32 ps對CAP0.0的電平進行連續的3次采樣,取其中2次相同的數據為最終結果。按照同樣的方式連續采樣10個數據。采集到的第1位到第8位分別為1個字節的bit0到bit7,注意低位在前高位在后。第9位為奇偶校驗位,第lo位為停止位。停止位始終為0。
④在停止位之后緊跟的是64 ps的高電平和64 ps的低電平。停止位與下一幀信號之間為空閑信號,空閑信號為高電平,持續時間為304弘s。一般而言對這部分不必做任何檢測。
6 實驗
LPC2104構成的曼徹斯特碼解碼器已經用于中速和高速球型攝像機云臺中,LPC2104首先對曼徹斯特碼進行解碼,然后解釋命令的內容,最后控制云臺和攝像機的動作。該解碼器運行至今非常穩定,沒有發生控制指令漏失的情況。在編寫程序的過程中要注意,定時器中斷服務
程序的運行時間一定要非常短,不能大于32 ps,否則就會產生采集到的數據與實際數據不相符的情況。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7596瀏覽量
151742 -
ARM
+關注
關注
134文章
9137瀏覽量
368258 -
視頻監控
+關注
關注
17文章
1711瀏覽量
65081
發布評論請先 登錄
相關推薦
評論