《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Android的MT8880芯片的設計與實現
基于Android的MT8880芯片的設計與實現
2016年微型機與應用第21期
文波,周淵平
四川大學 電子信息學院,四川 成都 610065
摘要: Android是一種基于Linux的開源操作系統,它具有十分豐富的應用。文章提出了將搭載有Android系統的主板TQ210和雙音多頻撥號芯片MT8880通過主板上的攝像頭B接口連接起來,設計一個可以在Android系統上接聽和撥打有線電話的應用,然后在 Linux 內核中編寫驅動程序,并在 HAL層和JNI層中生成動態庫文件,實現在Android平臺上通過有線接聽和撥打電話的功能。經過測試,該設計方案能成功接聽和撥打電話。
Abstract:
Key words :

  文波,周淵平

  (四川大學 電子信息學院,四川 成都 610065)

       摘要:Android是一種基于Linux的開源操作系統,它具有十分豐富的應用。文章提出了將搭載有Android系統的主板TQ210和雙音多頻撥號芯片MT8880通過主板上的攝像頭B接口連接起來,設計一個可以在Android系統上接聽和撥打有線電話的應用,然后在 Linux 內核中編寫驅動程序,并在 HAL層和JNI層中生成動態庫文件,實現在Android平臺上通過有線接聽和撥打電話的功能。經過測試,該設計方案能成功接聽和撥打電話。

  關鍵詞:Android; 有線電話; MT8880; HAL; JNI

0引言

  隨著移動通信技術的發展,移動通信經歷了從第一代到第四代的飛速發展,目前,5G通信已經進入測試階段。然而移動通信的每一次改變,通信頻率幾乎是成倍增加,使得每一個基站的信號覆蓋率會越來越小,這樣就會要求建立更多的基站,但是在城市里,居民不可能同意在自己的小區及小區附近建立基站,所以可以大膽預測,當5G通信到來時,室內的信號將會比較弱,手機通話質量會大大降低,這樣使得輻射也會大大增加,通話穩定性將會顯著降低。所以本文提出了一種在搭載有Android4.0系統的主板TQ210上撥打有線電話的方法,既可以克服手機在室內信號差的不足,又可以在主板上完成手機所具有的所有功能,這樣在室內就可以完全不用手機。

1硬件系統設計

  1.1硬件框架

  硬件系統由主板TQ210與MT8880模塊及其外圍電路構成,如圖1所示。主板TQ210采用了三星公司推出的S5pv210微處理器[1],從圖1中可以看出主板TQ210的外圍電路十分齊全。只需要將TQ210開發板的GPIO接口與MT8880模塊連接起來,就可以實現在搭載有Android系統的主板上接聽和撥打電話的功能。

圖像 001.png

  1.2MT8880模塊簡介

  MT8880收發芯片是具有微處理器接口的、功能較豐富的雙音多頻(DTMF)芯片。它的發送部分采用行列計數器及頻率穩定性較高的D/A轉換器,可以發出16種雙音多頻DTMF信號;接收部分能接收16個DTMF信號,并把DTMF信號分離及解碼,以4位并行二進制方式輸出[2]。MT8880芯片的功耗非常低,集成度相當高且定時準確,可以調整雙音頻模式的占空比,能自動抑制撥號音和調整信號增益,還帶有標準的數據總線,可以與TTL電平兼容,并可方便地進行編程控制[3]。

圖像 002.png

       1.2.1引腳排列與功能

  MT8880芯片引腳排列如圖2所示。該芯片有20個引腳,其中1腳為運放的同向輸入引腳;2腳為運放的反向輸入引腳;3腳為運放增益選擇端;4腳為基準電壓輸出端;5腳為電源地;6腳為DTMF時鐘/振蕩器輸入,采用3.579 545 MHz的時鐘信號;7腳為時鐘輸出引腳;8腳為輸出DTMF信號引腳;9腳為讀寫控制端;10腳為片選引腳;11腳為寄存器選擇引腳,當為低電平時,控制數據寄存器的讀寫,當為高電平時,控制狀態寄存器和控制寄存器的讀寫;12腳為系統時鐘輸入;13腳為中斷處理請求端;14~17腳為數據線,控制DTMF信號的發送和接收;18腳為滯后前輸出,當檢測到有效音頻時,就變為高電平,信號條件不足時又立刻返回低電平;19腳為滯后輸出/保護后輸出;20腳為電源正極,為該芯片提供所需電壓[4]。

圖像 009.png

  1.2.2信號音判斷原理

  信號音主要由撥號音、忙音及回鈴音組成,其中撥號音是連續脈沖信號,忙音和回鈴音的頻率相同,都在425 Hz~475 Hz,但它們通斷時間并不一樣,回鈴音在1 s時間為通,4 s時間為斷開,而忙音則是以0.7 s為一個周期,在一半的時間接通,一半的時間斷開。若要判斷信號音,應該在撥號后將MT8880芯片設置為呼叫處理模式,MT8880的呼叫處理濾波器是一個帶通濾波器,當信號輸入端有信號音輸入時,在IRQ/CP就輸出一高電平,此時電話呼叫過程中的各種信號音經MT8880濾波,限幅后得到方波,并由MT8880芯片的IRQ引腳輸出,判斷該引腳上的信號就知道為何種信號音。

  在本次編程中,撥完電話號碼后,就讓MT8880芯片工作在CP模式,并開啟中斷及定時器,采用下降沿觸發,計數時間為5 s,判斷步驟如下:

  (1)若計數值小于256則為撥號音,進入其他狀態并繼續檢測。若計數值還是小于256,則說明還是在通話中,一直檢測,直到計數值大于256后就掛斷電話,因為此時對方已經掛斷了電話。

  (2)如果計數值在1 024~1 791之間,則為忙音,直接掛斷電話。

  (3)若計數值在256~1 023,則為回鈴音,等待對方接聽,并繼續進入CP模式檢測。

  1.2.3MT8880模塊與主板連接原理

圖像 003.png

  由于TQ210主板上并沒有直接可用的GPIO口,經過查閱電路圖發現攝像頭接口CAMERA_B的引腳與GPIO口復用,它使用了GPJ0口的全部引腳和GPJ1口的部分引腳。若要將此接口作為GPIO口,只需要將原來配置的攝像頭驅動中對GPJ1、GPJ0引腳的初始化代碼去掉,然后在自己寫的驅動中對這些引腳初始化成所需的功能即可。圖3為MT8880模塊輸入輸出接口與開發板的GPIO接口對接圖,其中D0~D3為數據線,當打電話時,把這4個腳配置為輸出,當接電話時,把這4個腳配置為輸入,為以后做來電顯示做準備。具體每個腳的功能見表1。

2軟件設計

  Android系統的底層是Linux[5],所以所有的軟件設計都是在Ubuntu14.04系統上完成的,要使該芯片能夠正常工作,則必須要在Linux內核中編寫相應的驅動文件,在HAL層和JNI層生成動態庫文件以及在應用層編寫應用程序[6]。

  2.1MT8880驅動開發

  在/opt/EmbedSky/TQ210/Kernel_3.0.8_TQ210_for_Linux_v1.4/drivers/char目錄下新建一個tq210_mt8880.c,然后在tq210_mt8880.c文件里編寫好程序后并保存,修改該目錄下的Kconfig文件,在終端執行命令make menuconfig時可以看到剛剛新增的配置選項,最后修改該目錄下的Makefile文件,然后在make menuconfig中選擇剛才加上的菜單,重新編譯內核,如果成功,則內核就已經包含了最新加進去的MT8880驅動了。

  2.2HAL層開發

  硬件抽象層(Hardware Abstraction Layer,HAL)是建立在Linux驅動之上的一套動態庫。這套動態庫是屬于Linux內核層之上的系統運行庫層[7]。

  Android系統的HAL層是為了避開Linux的GPL束縛,保護一些硬件供應商的知識產權而提出的,HAL層用于控制硬件的動作,而Linux 驅動程序僅僅完成一些簡單的數據交互作用,甚至把硬件寄存器空間直接映射到user space[8]。目前HAL存在兩種架構,位于libhardware_legacy目錄下的“舊HAL架構”和位于hardware的libhardware目錄下的“新HAL架構”。主板TQ210采用了“新HAL架構”。新HAL架構如圖4所示。

圖像 004.png

  編寫HAL層代碼步驟如下:

  (1)首先在TQ210_Android_4.0.4_V1.4/hardware/Libhardward/include下創建MT8880.h頭文件,編寫頭文件源碼并保存。

  (2)然后在/opt/EmbedSky/TQ210/TQ210_Android_4.0.4_V1.4/device/embedsky/tq210目錄下創建libMT8880文件夾,在該文件夾中新建MT8880.c文件,在該文件里編寫源碼,然后保存該文件,最后在該文件夾下創建Android.mk文件并編寫該文件的源碼,然后保存該文件。

  (3)最后在終端輸入相關命令進行編譯,將在目錄下生成的MT8880.tq210.so文件復制到主板上的system/lib/hw目錄下,當然也可以放在其他目錄下。

  2.3JNI層開發

  JNI的全稱為Java Native Interface,它是Java平臺的一部分,并允許Java代碼與其他語言寫的代碼進行交互,使得在JVM(Java虛擬機)內部運行的Java字節碼能夠與其他語言(比如C、C++等)進行交互操作[9],圖5為JNI層在Android中的位置關系圖。

圖像 005.png

  在/opt/EmbedSky/TQ210/TQ210_Android_4.0.4_V1.4/packages/apps中創建MT8880文件夾,用來存放jni源碼,在該文件夾中新建文件MT8880Service.cpp,編寫源碼并保存,這里需要注意的是函數的前置Java_com_embedsky_MT8880_MT8880Activity_決定了創建應用程序使用的包名。其次創建Android.mk文件,編寫源碼并保存。最后在終端輸入相關命令進行編譯,將生成的libMT8880.so文件復制到主板對應的目錄中[10]。

3測試及結果

  在本次測試中,將TQ210開發板(搭載Android4.0系統)與MT8880模塊及其外圍電路通過開發板上的CAMERA_B接口連接起來,并把電話線接到MT8880上的RJ11接口上,然后打開開發板上的通訊錄APP,點擊按鈕進行撥號。經過測試,該裝置能順利撥通要打的電話,并且語音質量良好,測試結果如圖6~圖8所示。

圖像 006.png

圖像 007.png

圖像 008.png

4結論

  本文實現了在Android系統上通過MT8880芯片撥打和接聽有線電話的功能,并且該方案既有抗干擾能力強、輻射小、保密性強的通信特點,又具有Android平臺的所有特性。如果將手機上的通訊信息同步到該系統上,然后直接在該系統上撥出要打的電話號碼,即可完全實現無線與有線的融合,把兩者的優點結合起來,這樣該設計方案將更加完美。

  參考文獻

  [1] 廣州天嵌計算機科技有限公司.TQ210用戶硬件手冊[Z].2012.

  [2] 李傳南,王劍剛,李寶華.單片機與DTMF信號收發芯片MT8880的直接接口設計[J].電子與自動化,1999(2):23-24.

  [3] 張立臣.DTMF信號收、發芯片MT8888原理及應用[J].國外電子元器件,2001(9):30-31.

  [4] 董守田,徐風文.DTMF收發芯片MT8888的應用[J].農機化研究,2003(2):216-217.

  [5] 宋寶華.Linux設備驅動開發詳解(第二版)[M].北京:人民郵電出版社,2013.

  [6] 李剛.瘋狂Android講義[M].北京:電子工業出版社,2015.

  [7] 李寧. Android開發權威指南[M]. 北京:人民郵電出版社,2011.

  [8] 韋德瓊.基于Android系統的驅動模塊的設計和實現[D].哈爾濱:哈爾濱工業大學,2012.

  [9] 施月玲,宣凱,張海平,等.JNI技術在Android平臺融合通信終端的應用[J].杭州電子科技大學學報(自然科學版),2015,28(2):41-44.

  [10] 杜江,周淵平.基于Android的電話撥號功能[J].計算機系統應用,2014,23(12):245-248.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
看片网站欧美日韩| 国产精品入口| 亚洲欧美激情诱惑| 一本久道久久综合狠狠爱| 久久国产精品高清| 欧美一级大片在线观看| 亚洲伊人一本大道中文字幕| 在线视频亚洲| 宅男精品视频| 亚洲午夜91| 亚洲视频在线观看视频| 一本色道久久| 一区二区三区四区五区精品视频| 亚洲看片一区| 亚洲日本在线视频观看| 亚洲欧洲精品一区二区精品久久久| 亚洲高清资源综合久久精品| 亚洲国产精品久久久| 亚洲第一色在线| 亚洲国内自拍| 亚洲精品一区二区在线观看| 亚洲精品免费电影| 亚洲精选在线| 亚洲深夜激情| 午夜精品视频在线| 欧美专区在线| 亚洲激情综合| 一个人看的www久久| 亚洲一区二区三区高清 | 亚洲欧美bt| 校园春色综合网| 久久精品一区| 亚洲另类一区二区| 亚洲一区二区三区四区中文| 欧美一区二区精美| 久久久999国产| 免费一区视频| 欧美日韩亚洲视频| 国产精品一区二区你懂的| 国产在线观看91精品一区| 精品成人在线| 亚洲美女在线国产| 午夜精品电影| 91久久精品国产91久久| 一区二区三区免费在线观看| 欧美亚洲免费电影| 美脚丝袜一区二区三区在线观看| 欧美人与禽性xxxxx杂性| 国产精品国产三级欧美二区 | 亚洲精品久久久久久久久久久| 制服丝袜亚洲播放| 小黄鸭精品aⅴ导航网站入口| 久久久久久高潮国产精品视| 欧美国产一区视频在线观看| 国产精品久久久久永久免费观看 | 亚洲一区二区成人| 久久精品国产69国产精品亚洲 | 久久国产精品第一页| 美女视频黄a大片欧美| 欧美日韩视频专区在线播放| 国产人成精品一区二区三| 在线欧美亚洲| 亚洲视屏在线播放| 亚洲国产精品va在看黑人| 亚洲自拍偷拍一区| 老司机久久99久久精品播放免费 | 欧美午夜精品电影| 狠狠v欧美v日韩v亚洲ⅴ| 99re热这里只有精品视频| 欧美一区影院| 宅男噜噜噜66国产日韩在线观看| 久久精品国产一区二区电影| 欧美精品一区二区三区视频 | 狠狠色噜噜狠狠狠狠色吗综合| 99re8这里有精品热视频免费| 久久精品国产99国产精品澳门 | 免费欧美网站| 国产精品一区在线观看你懂的| 亚洲人成人99网站| 欧美一区亚洲| 亚洲在线播放电影| 欧美激情无毛| 国语自产精品视频在线看| 这里只有精品丝袜| 日韩一区二区精品在线观看| 久久久久久亚洲综合影院红桃| 欧美亚洲成人精品| 亚洲国产你懂的| 亚洲第一色在线| 欧美亚洲色图校园春色| 欧美日韩精品一区二区天天拍小说| 国产亚洲一区在线| 亚洲一级免费视频| 一本久久综合| 欧美黄色影院| 在线视频国产日韩| 亚洲二区精品| 久久精品一区二区| 国产日韩欧美精品在线| 一本色道久久综合亚洲精品高清| 亚洲伦伦在线| 欧美xx69| 加勒比av一区二区| 欧美亚洲视频| 久久er99精品| 国产情侣久久| 午夜精品视频在线观看一区二区| 亚洲欧美日韩国产中文在线| 欧美视频国产精品| 99re成人精品视频| 一区二区三区高清在线观看| 欧美大片在线观看| 亚洲第一在线综合网站| 亚洲高清免费在线| 久久久亚洲一区| 国产一区美女| 久久不射中文字幕| 久久久国产精彩视频美女艺术照福利| 国产欧美69| 亚洲免费在线电影| 午夜精品婷婷| 国产欧美日韩精品专区| 亚洲免费在线| 久久超碰97人人做人人爱| 国产欧美精品一区| 午夜精品一区二区三区四区| 欧美亚洲专区| 国产偷久久久精品专区| 欧美资源在线| 裸体女人亚洲精品一区| 在线观看日韩av先锋影音电影院| 久久精品一区蜜桃臀影院| 久久尤物视频| 亚洲第一二三四五区| 亚洲精品乱码久久久久久日本蜜臀| 欧美激情导航| 日韩午夜在线观看视频| 亚洲在线第一页| 国产区二精品视| 久久精品国产一区二区三区免费看| 久久琪琪电影院| 亚洲国产mv| 亚洲视频精品在线| 国产精品三上| 久久成人精品一区二区三区| 欧美14一18处毛片| 亚洲欧洲视频| 亚洲欧美中文日韩v在线观看| 国产九九精品| 久久精品国产99精品国产亚洲性色 | 黄色精品一区二区| 亚洲精品社区| 国产精品久久久久国产a级| 午夜精品久久久久久久男人的天堂| 久久久噜噜噜久久中文字免| 亚洲第一精品夜夜躁人人爽| 99视频一区| 国产精品日韩在线一区| 久久成人精品视频| 欧美日韩国产综合视频在线观看中文 | 性久久久久久久久| 黑丝一区二区| 一本色道久久综合亚洲精品小说| 国产精品一区视频网站| 亚洲国产欧美日韩精品| 欧美日韩视频在线一区二区 | 久久都是精品| 亚洲欧洲精品一区二区| 亚洲欧美日韩一区二区| 一区二区三区自拍| 亚洲午夜精品一区二区| 国产亚洲一区在线播放| 日韩午夜在线观看视频| 国产精品中文字幕欧美| 亚洲丁香婷深爱综合| 欧美午夜宅男影院在线观看| 欧美在线影院| 欧美午夜视频一区二区| 久久精品国产久精国产爱| 欧美日韩一视频区二区| 欧美一区=区| 欧美日韩国产探花| 久久激情综合| 国产精品久久77777| 亚洲国产精品t66y| 国产精品视频内| 亚洲免费黄色| 国产综合18久久久久久| 亚洲一区二区三区久久| 亚洲电影有码| 欧美在线视频播放| 99国内精品久久久久久久软件| 久久久久久网| 亚洲在线成人| 欧美日本一区| 久久激情一区| 国产欧美日韩视频一区二区| 在线综合亚洲| 亚洲激情网站| 免费观看亚洲视频大全|