《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
亚洲精品无人区| 亚洲国产精品久久久久婷婷884| 国产精品劲爆视频| 免费欧美网站| 欧美伊人久久久久久久久影院| 亚洲精品在线观看免费| 久久精品国产一区二区三区| 亚洲欧美日韩天堂| 日韩视频在线免费观看| 性欧美大战久久久久久久免费观看 | 亚洲精品人人| 欧美综合二区| 久久国产毛片| 久久国产精品久久久久久| 欧美a级大片| 玖玖玖国产精品| 久久久人成影片一区二区三区观看| 性xx色xx综合久久久xx| 午夜精品国产更新| 日韩西西人体444www| 亚洲电影视频在线| 亚洲欧美国产精品va在线观看| 欧美制服丝袜第一页| 日韩一级网站| 99在线|亚洲一区二区| 91久久精品网| 亚洲激情中文1区| 亚洲区免费影片| 亚洲精品免费观看| 亚洲精品日韩欧美| 在线亚洲一区| 亚洲一区二区三区四区五区黄| 亚洲一区二区在线观看视频| 午夜精品av| 欧美在线视频免费| 亚洲国产成人porn| 亚洲精品一级| 一区二区三区高清不卡| 亚洲一级二级| 国产欧美视频一区二区| 午夜精品久久久久久99热软件| 香蕉免费一区二区三区在线观看 | 欧美极品aⅴ影院| 榴莲视频成人在线观看| 欧美xx视频| 欧美日韩久久久久久| 国产精品chinese| 国产精品视频一| 国产在线精品成人一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产成人不卡| 日韩视频在线观看一区二区| 亚洲视频在线观看免费| 亚洲欧美日韩一区二区三区在线观看| 欧美在线关看| 亚洲精品色图| 亚洲伊人伊色伊影伊综合网| 欧美影院午夜播放| 男人的天堂亚洲在线| 欧美日韩精品是欧美日韩精品| 国产精品一二三| 国内精品一区二区| 欧美在线观看网址综合| 国产亚洲欧洲一区高清在线观看 | 99精品视频一区| 久久精品一二三| 一区二区三区精品视频在线观看| 亚洲综合二区| 久久久久久穴| 欧美日韩日日骚| 日韩视频在线播放| 麻豆freexxxx性91精品| 欧美日韩精品一区二区| 国产亚洲一区在线| 亚洲精品在线视频| 午夜欧美不卡精品aaaaa| 亚洲精品美女在线观看| 欧美一级淫片播放口| 久久成人免费视频| 欧美日韩一区二区三区视频| 激情国产一区二区| 亚洲午夜精品网| 日韩亚洲在线观看| 久久久久久**毛片大全| 欧美视频一区| 1000部精品久久久久久久久| 亚洲一区激情| 亚洲欧美美女| 国产欧美婷婷中文| 亚洲成色www8888| 亚洲视频久久| 亚洲国产欧美不卡在线观看 | 欧美经典一区二区| 在线观看亚洲视频| 一区二区三区精密机械公司| 久久精品国产亚洲一区二区三区| 亚洲一区欧美一区| 美女日韩欧美| 国产日产亚洲精品| 一区二区日韩精品| 久久国产精品毛片| 久久午夜精品一区二区| 国产精品久久久久久亚洲毛片| 136国产福利精品导航网址| 亚洲免费视频一区二区| 在线亚洲免费视频| 欧美高潮视频| 在线观看日产精品| 欧美一级片一区| 翔田千里一区二区| 亚洲日韩视频| 亚洲国产精品小视频| 欧美一区二区三区播放老司机| 欧美日韩大片| 亚洲激情综合| 亚洲精品久久| 欧美电影在线观看完整版| 国产一区二区三区的电影| 亚洲少妇一区| 亚洲午夜在线观看| 欧美精品色网| 亚洲精品亚洲人成人网| 亚洲精品日韩久久| 欧美国产日韩免费| 亚洲国产精品一区二区第一页 | 久久综合狠狠综合久久综青草 | 亚洲高清在线观看一区| 久久久成人网| 国产色综合网| 性8sex亚洲区入口| 久久av最新网址| 国产欧美一区二区三区在线老狼 | 免费h精品视频在线播放| 韩国精品在线观看| 久久精品国产成人| 久久婷婷激情| 在线观看国产精品网站| 亚洲欧洲在线一区| 欧美人与性动交a欧美精品| 日韩视频一区二区| 亚洲午夜羞羞片| 国产精品网站视频| 午夜激情综合网| 日韩亚洲国产欧美| 亚洲精品乱码久久久久久按摩观| 欧美77777| 亚洲国内精品在线| av成人老司机| 国产精品久久久久久久久| 亚洲综合首页| 久久裸体艺术| 亚洲国产人成综合网站| 一本大道久久a久久精品综合| 久久久综合网站| 欧美激情一区二区三区| 日韩一级精品| 香蕉成人啪国产精品视频综合网| 国产亚洲精品久久久久动| 亚洲国产成人porn| 欧美女人交a| 亚洲午夜影视影院在线观看| 久久九九全国免费精品观看| 亚洲第一伊人| 亚洲视频导航| 国产日韩欧美中文在线播放| 久久精品视频一| 欧美日韩精品伦理作品在线免费观看| 亚洲影视综合| 久久综合色播五月| 亚洲美女精品一区| 欧美中文日韩| 亚洲国产天堂久久国产91| 亚洲免费视频一区二区| 国产一区欧美| 99热免费精品| 国产亚洲美州欧州综合国| 日韩视频在线观看国产| 国产精品综合不卡av| 亚洲黄色成人| 国产精品日韩一区二区| 最新国产精品拍自在线播放| 国产精品v欧美精品v日韩精品| 久久成人一区| 欧美性片在线观看| 亚洲国产精品一区二区久| 国产精品久久久久久久久果冻传媒 | 一区二区免费在线观看| 国产亚洲免费的视频看| 宅男精品视频| 国内自拍亚洲| 亚洲一区三区在线观看| 一区二区在线视频| 亚洲欧美日韩网| 亚洲高清在线观看一区| 欧美一区观看| 日韩亚洲精品视频| 美女网站在线免费欧美精品| 亚洲欧美一区二区激情| 欧美日韩国产欧| 亚洲国产日韩在线|