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控制
主站蜘蛛池模板: 色综合综合网| 久久免费视频6| 91亚洲免费视频| 国产毛片一区| 婷婷成人综合| 国产成人综合亚洲欧美在| 99精品免费欧美成人小视频 | 国产精品视屏| 国产av剧情无码精品色午夜| 久久久精品无码一二三区| 国产成人精品一区二区| 国产人在线成免费视频| 国产精品人成在线播放| 亚洲欧洲一区二区三区| 国产超碰一区二区三区| 中文国产成人精品久久一| 日韩欧美中文字幕在线韩免费 | 精品欧美视频| 欧美三级视频在线播放| 欧美第九页| 欧美日韩中文国产| 亚洲欧美日韩成人高清在线一区| 亚洲综合18p| 99激情网| 国产91九色在线播放| 免费一级毛片在线播放傲雪网| 人妻91无码色偷偷色噜噜噜| 日本精品视频一区二区| 不卡的在线视频免费观看| av午夜福利一片免费看| 欧美在线精品怡红院| 18禁黄无遮挡免费动漫网站| 国产亚洲精久久久久久久91| 国产精品妖精视频| 亚洲AV无码乱码在线观看代蜜桃 | 91福利在线观看视频| 亚洲第一成年网| 国产成人h在线观看网站站| 国产在线视频福利资源站| 国产网友愉拍精品视频| 婷婷激情亚洲| 久久超级碰| 欧美一区二区啪啪| 五月婷婷精品| 久久影院一区二区h| 国产99精品久久| 五月婷婷欧美| 久久青草视频| 婷婷色中文网| 麻豆精品国产自产在线| 国产成人av一区二区三区| 亚洲综合天堂网| 国产尤物视频网址导航| 91在线国内在线播放老师| 欧美精品亚洲二区| 亚洲a免费| 久久毛片网| 色成人亚洲| 97成人在线观看| 国产jizz| 国产欧美日韩va| 亚洲激情99| 亚洲一区无码在线| 中文字幕在线看视频一区二区三区| 精品国产成人av免费| 高清视频一区| 女人18毛片一级毛片在线| 91精品免费久久久| 国产一级一级毛片永久| 亚洲日韩每日更新| 国产91高跟丝袜| 2021国产在线视频| 国产不卡在线看| 久久动漫精品| 日韩国产精品无码一区二区三区| 欧美yw精品日本国产精品| 无码中文字幕乱码免费2| 亚洲精品国产精品乱码不卞| 亚洲综合色婷婷中文字幕| 久久亚洲欧美综合| 18禁高潮出水呻吟娇喘蜜芽| 夜夜操国产|