999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的MT8880芯片的設計與實現

2016-12-02 09:31:00周淵平
網絡安全與數據管理 2016年21期
關鍵詞:信號系統

文 波,周淵平

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

?

基于Android的MT8880芯片的設計與實現

文 波,周淵平

(四川大學 電子信息學院,四川 成都 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系統的主板上接聽和撥打電話的功能。

圖1 硬件系統框架圖

1.2 MT8880模塊簡介

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

圖2 MT8880引腳圖

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]。

表1 MT8880模塊輸入輸出接口定義

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.3 MT8880模塊與主板連接原理

圖3 MT8880模塊輸入輸出接口圖

由于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.1 MT8880驅動開發

在/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.2 HAL層開發

硬件抽象層(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所示。

圖4 新HAL架構

編寫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.3 JNI層開發

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

圖5 JNI在Android中位置圖

在/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所示。

圖6 撥號測試圖

圖7 接通后測試圖

圖8 通話記錄顯示界面

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.

Design and implementation of MT8880 chip based on Android

Wen Bo,Zhou Yuanping

(School of Electronics and Information Engineering,Sichuan University,Chengdu 610065,China)

Android is an open source operating system based on Linux.It has very rich applications.In this paper, mainboard TQ210 with Android system and dual tone multi-frequency dialing chip MT8880 are connected by the mainboard’s camera B interface, and an application of making and receiving calls on the Android platform is designed.Driver can be redacted in the Linux Kernel of Android ,and dynamic libraries are generated in JNI and HAL to make and receive calls through the wire phone on the Android system.The test results show that the design can answer and call the phone successfully.

Android; wire telephone; MT8880; HAL; JNI

TP399

A

10.19358/j.issn.1674- 7720.2016.21.027

文波,周淵平. 基于Android的MT8880芯片的設計與實現[J].微型機與應用,2016,35(21):88-90,97.

2016-06-05)

文波(1988-),男,碩士研究生,主要研究方向:信號與信息處理。

周淵平(1955-),男,教授,博士生導師,主要研究方向:通信與信息系統、信號與信息處理。

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 国内精品视频在线| 亚洲第一极品精品无码| 亚洲无卡视频| AⅤ色综合久久天堂AV色综合| 国产在线精品人成导航| 天天综合色天天综合网| 日韩资源站| 91人妻日韩人妻无码专区精品| 亚洲AV无码乱码在线观看代蜜桃| 国产在线观看精品| A级毛片无码久久精品免费| 久久一日本道色综合久久| 亚洲福利视频网址| 色135综合网| 58av国产精品| 777国产精品永久免费观看| 天天摸夜夜操| 色九九视频| 国产激情国语对白普通话| a毛片免费在线观看| 亚洲av无码牛牛影视在线二区| 亚洲高清在线天堂精品| a毛片免费在线观看| 超薄丝袜足j国产在线视频| 精品国产免费观看| 亚洲男人的天堂在线观看| 99久久亚洲精品影院| 久久五月天国产自| 国产一级毛片yw| 国产导航在线| 成人精品区| 午夜一级做a爰片久久毛片| 久久青草免费91观看| 国产swag在线观看| 2019年国产精品自拍不卡| 99re精彩视频| 午夜精品国产自在| 中文字幕人妻无码系列第三区| 久久久久国产精品熟女影院| 99热这里只有精品在线观看| 99久久99这里只有免费的精品| 国产日韩欧美一区二区三区在线| 中文无码精品A∨在线观看不卡 | 99久久国产综合精品2023| 免费观看亚洲人成网站| 国产麻豆aⅴ精品无码| 1024国产在线| 国产一区在线观看无码| 狼友视频国产精品首页| 亚洲欧美另类日本| 伊人激情久久综合中文字幕| 欧美性猛交一区二区三区| 国产日韩AV高潮在线| 综合色在线| 99精品在线看| 国产精品第5页| 伊人久久大线影院首页| 久久久久久久久18禁秘| 男女男精品视频| 久久五月视频| 成人伊人色一区二区三区| 欧美亚洲国产一区| 国产乱子伦视频在线播放| 久久人搡人人玩人妻精品一| 国产99精品视频| 成人噜噜噜视频在线观看| 无码区日韩专区免费系列 | 亚洲中文字幕在线一区播放| 亚洲中文无码av永久伊人| 国产白浆在线观看| 精品国产成人高清在线| 国产一区成人| 伊人色在线视频| 欧美成人午夜影院| 久久亚洲综合伊人| 国产一区二区三区精品欧美日韩| 国产爽妇精品| 成人福利在线看| 亚洲综合久久成人AV| 精品国产91爱| 无码网站免费观看| 国产青青草视频|