Abstract: AC4830xC-C is a dedicated voice chip produced by the US AudioCodes Company. It supports international standards for voice encoding and decoding at various code rates, and it can provide fax and data relay functions. The TCM38C17 is the voice PCM encoding chip of the American TI company. The article introduces the basic performance and working principle of the two chips, and gives an implementation scheme of a four-channel voice codec system based on these two chips.

1 Introduction

AC4830xC-C series chip is a special voice chip produced by American AudiCodes company. It can compress the PCM voice code stream into voice signals of various code rates as required. AC4830xC-C has multi-channel voice transmission function, and the operation of each channel Independent. The chip has a wide range of applications in voice communications, especially IP telephone systems. TCM38C17 can provide two different PCM coding functions of A-law and U-law, and also has four independent channels. This article mainly introduces the basic performance and working principle of these two kinds of voice chips, and gives a system design scheme to realize four-way voice codec based on these two chips.

2 Functional principle of AC4830xC-C

AC4830xC-C series devices include AC48301C-C, AC48302C-C and AC48304C-C, which can provide 1, 2, and 4 voice channels respectively, and each channel in the multi-channel chip can operate independently without interference . The basic working principle of AC4830xC-C is shown in Figure 1.

When designing a voice system, the AC4830xC-C chip can be used to compress the PCM voice code stream into voice signals of the following multiple code rates according to actual needs:

(1) G. 711 The PCM code rate is 64kbps;

(2) G. 726 ADPCCM code rate is 16kbps ~ 40kbps;

(3) G. 727 E-ADPCM code rate is 16 ~ 40kbps;

(4) G. 729 CS-ACEL code rate is 8.0kbps;

(5) G. 723.1 MP-MLQ / ACEL code rate is 6.3 / 5.3kbps;

(6) The NetCoder bit rate is 6.4kbps to 9.6kbps.

After receiving the voice PCM stream or fax data, the AC4830xC-C first performs input gain control and echo cancellation, and then distinguishes whether the specific service type is voice data or fax data. If it is voice data, the voice is based on specific requirements. The signal is encoded and the encoded data is sent out through the host interface; on the other hand, the AC4830xC-C will also read the data from the host interface and judge it. If it is judged as voice data, it will be decoded into a PCM code stream and Send out through the PCM interface.

The AC4830xC-C chip must be supported by peripheral devices to work properly. It provides 5 external interfaces, namely host interface (HPI), PCM interface, clock interface, memory, I / O interface and simulation test interface. The host interface of the AC4830xC-C is an 8-bit parallel interface. You can use the DSP to control the AC4830xC-C through the host interface and exchange data with it.

The clock control part of the AC4830xC-C includes an external crystal oscillator and an internal clock circuit. Its operating clock is generally determined by the oscillation frequency of the external crystal oscillator and the internal PLL value. When designing, you can change its working clock by changing the value of the PLML register.

In addition, AC4830xC-C also provides six alternative working clock methods, but requires that its operating frequency must be controlled between 98.304 ~ 100MHz.

3 Working principle of TCM38C17

TCM38C17 is a PCM voice coding chip produced by Texas Instruments (TI) in the United States. It can provide the conversion function between the analog voice signal and the PCM code stream. It also integrates A-law and U-law standards. In addition, the chip itself also provides functions such as gain control. The chip integrates 4-way PCM chips, which is equivalent to the function of 4 TCM29C13. When the device is working, it usually needs an external circuit to provide it with a clock signal PCMCK, a frame synchronization signal PCMFS, and a specific frame synchronization signal for each channel of voice? The working sequence of its four-way cooperative work is shown in Figure 2.

4 System hardware design

Based on the functions provided by the above two chips, an implementation scheme of a four-channel voice codec system is given below. Figure 3 shows the system block diagram.

In this system, when the analog voice signal sent from the source is PCM coded by TCM38C17, the PCM code stream will be compressed and encoded by AC4830xC-C to form the required voice code stream, and then controlled and frequency-modulated by the DSP processor. Processing, and finally sent out through the serial / parallel converter. On the other hand, the DSP will write the data read from the serial / parallel converter to the AC4830xC-C through the host interface, and the AC4830xC-C decodes the voice code stream to generate a PCM code stream, and then restores it to analog through TCM38C17 voice signal. Because the AC4830xC-C only provides a frame synchronization signal, a counter is used in this system to generate other three-way frame synchronization signals required by the TCM38C17 chip.

5 System software design

The system software is mainly used to control the AC4830xC-C. AudiCodes company stipulates the operation method of AC4830xC-C, and provides the corresponding initialization kernel program and working program. When working, you should first reset the AC4830xC-C through DSP. After the reset is successful, first write the kernel program, then write the work program, and finally write these programs to the AC4830xC-C through the host interface of AC4830xC-C.

After downloading the working program, the chip can start to work. At this time, the chip is in the initialization mode. Its default coding rate is 32 kbps ADPCM coding. The designer can set a separate mode for each channel, including which channels of voice are enabled. Channel, adjust the amplitude of each voice signal, and select the corresponding voice coding method according to specific technical requirements. The AC4830xC-C reads in one frame of voice data every 30ms, and each frame of voice data is compressed and encoded into a voice data packet. The data packet contains voice data and information about the encoding method, and when transmitting data, these encoded information must also be transmitted to the receiver at the same time.

6 Conclusion

AC4830xC-C is a powerful special chip for voice signal processing, it provides a variety of voice codec functions, and the operation is also very convenient. This article is to use it to work with TCM38C17 to build a multi-channel voice communication codec system. It is believed that in the field of IP telephony and multimedia communication, chips such as AC4830xC-C will be more and more widely used.

Tektronix supports Amazon (AWS) media services to provide quality assurance for end-to-end video Shengju Apple TV 4K disassembly report based on unified computing architecture technology video display system design: familiar modular components

Follow WeChat

Interesting and informative information and technical dry goods

Download Audiophile APP

Create your own personal electronic circle

Follow the audiophile class

Lock the latest course activities and technical live broadcast
Collect People collection
share it:
comment
Publish

related suggestion

var check_allow = "/d/Api/iscantalk.html"; var add_url = '/ d / article / write /'; function CheckLogin () {now_uid = ''; var ElecfansApi_checklogin = '/ webapi / passport / checklogin'; var logout_url = "{: U ('Login / logout')}"; var logout_url = 'http://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front'; $ .get (ElecfansApi_checklogin, function (data, textStatus) {if (data! = "") {EchoLoginInfo (data); CheckEmailInfo (data); data = $ .parseJSON (data); now_uid = data.uid; / * var login_content = 'write an article
'+ data.username +'
Quit '; * / var login_content =' write an article
'+ data.username +'
Set exit '; $ (' # login_area '). Html (login_content); var win_width = $ (window) .width (); if (win_width> 1000) {$ ("# mine"). MouseDelay (200) .hover (function () {$ ("# mymenu"). show ();}, function () {$ ("# mymenu"). hide ();});}} else {var content = 'Login Registration'; $ ('# login_area'). html (content); $ (". special-login"). click (function (e) {$ .tActivityLogin (); return false;});}});} $ (function () {// comment ------------------------------- var comment = $ ("# comment"); var comment_input = $ ("# comContent"); // Submit comment click event interaction $ ("# comSubmit2"). on ('click', function () {var content = comment_input.text (); // Empty input box comment_input. html (""). focus (); // Submit data to server $ .ajax ({url: '/plus/arcComment.php', data: {aid: $ ("# webID"). val (), dopost : 'apiPubComment', content: content}, type: 'post', dataType: 'json', success: function (data) {// Data format returned: if (data.status == "successed") {// Build temporary comment DOM var dom = ''; dom + = '
'; dom + =' '; dom + ='
'; dom + ='

'+ data.data.username +' '; dom + ='

'; dom + =' '+ content +' '; dom + =' '; dom + =' just now '; dom + =' '; dom + =' '; // insert a temporary comment to the list $ ("# comment ") .append (dom);} if (data.status ==" failed ") {// alert (data.msg); layer.msg (data.msg);}}}); return false;}); (function () {/ * * Insert single sign-on JS * / var setHost = 'https://passport.elecfans.com'; // Set domain name var script = document.createElement ('script'); script.type = 'text / javascript'; script.src = setHost + '/public/pc/js/t.passport.js'; script.setAttribute ("id", "sso_script"); script.setAttribute ("data-ssoSite", setHost); script.setAttribute ("data-ssoReferer", encodeURIComponent (location.href)); script.setAttribute ("data-ssoSiteid", "11"); var body = document.getElementsByTagName ("body"). item ( 0); body.appendChild (script);}) () / * * It is recommended to modify the style of the article without a picture * * / $ (". Article .thumb"). Each (function () {if ($ (this). find ('img'). attr ('src') == "") {$ (this) .find ('img'). remove (); $ (this) .parent (). css ('padding-left ',' 0px ');}}); / * Baidu share * / window._bd_share_config = {common: {bdText: '', // Custom share content bdDesc: '', // Custom share summary bdUrl: window.location.href, // Custom share URL address bdPic: ''} , share: [{"bdSize": 60, "bdCustomStyle": true}]} with (document) 0 [(getElementsByTagName ('head') [0] || body) .appendChild (createElement ('script')). src = 'http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion=' + ~ (-new Date () / 36e5)]; var add_url = '/ d / article / write / '; // var check_allow = "{: U (' Api / iscantalk ')}"; var check_allow = "/ d / api / iscantalk"; var click_items_length = $ ('. art_click_count '). length; if ( click_items_length> 0) {var id_str = ''; $ ('. art_click_count'). each (function () {id_str + = $ (this) .attr ('data-id') + ',';}) // var url = "{: U ('Api / getclickbyids')}"; var url = "/ d / api / getclickbyids"; var id_data = 'id_str =' + id_str; $ .ajax ({url: url, data: id_data, type: 'post', dataType: 'json', success: function (re) {if (re.list.length> = 1) {var list = re.list; for (var i in list) {var t emp_id = list [i] ['id']; var temp_span = $ (". art_click_count [data-id =" + temp_id + "]") temp_span.html (list [i] ['click']);}} }})} $ ("# comContent"). click (function () {if (now_uid == '') {$ .tActivityLogin (); return false;}}) $ (function () {var follow_wrap = $ ( ".author-collect"); var now_uid = "{$ _super ['uid']}"; var face_src = "{$ _super ['uface']}"; var getFollowNum = $ (". followNum strong"). html (); // Follow $ (window) .on ('click', '.author-collect', function () {if (now_uid == '') {$ .tActivityLogin (); return false;} if ( $ (this) .attr ('id') == 'follow') {$ .post ('/ d / user / follow', {tuid: article_user_id}, function (data) {// Data format returned: if (data.status == "successed") {$ (". followNum strong"). html (++ getFollowNum); follow_wrap.html ('followed'). attr ('id', 'cancelFollow'). css ( 'background', '# 999'); var follow_user = ' '; $ (' # follow_list '). append (follow_user);} if (data.status == "failed") {alert (data.msg);}});} else {// Unfollow if ($ ( this) .attr ('id') == 'cancelFollow') {$ .post ('/ d / user / cancelFollow', {tuid: article_user_id}, function (data) {// Data format returned: if (data .status == "successed") {follow_wrap.html ('Follow'). attr ('id', 'follow'). css ('background', '# f90'); $ (". followNum strong"). html (-getFollowNum); $ ('# follow_list .face'). each (function () {var target_uid = $ (this) .attr ('data-uid'); if (target_uid == now_uid) {$ ( this) .remove ();}})} if (data.status == "failed") {alert (data.msg);}}); return false;}}});});}); / * var myface = "{$ _super ['uid'] | avatar}"; var myname = "{$ _super ['username']}"; var article_id = {$ article ['id']}; var article_user_id = {$ article ['mid']}; // Article author ID $ (function () {<notempty name = "clearnum"> // Reduce the number of reminders var count = parseInt ($ ("# noticeCount"). html ()); count = count-{$ clearnum}; $ ("# noticeCount"). html (count); if ( count

Track For Light

Track for light can help Track Light work, have the track for light, LED track lights can move in track, can change the direction of light, in order to increase the flexibility and high color rendering of lamplight, it is applicable to the exhibition hall, museum, outdoor, edges and corners of the roof light, the dot effect projection, the museum of art and the office of local lighting, etc., are widely used in shopping mall, bar ambry exhibits at the same time the lights. LEDER has a variety of tracks and colors to choose from for the best visual effect.

Track For Light

Modern Track Lighting,Kitchen Track Lighting,Track Lighting Heads,Flexible Track Lighting

JIANGMEN LEDER LIGHTING CO., LTD , https://www.lederlight.com