Đề tài Thiết kế hệ thống ghi âm số

• Chương trình con phục vụ ngắt: Vì có 2 chế độ vào ra dữ liệu với soundcard qua DMA là Single Cycle và Auto-Initialized, nên công việc của chương trình con phục vụ cho mỗi chế độ là khác nhau. Trong chế độ Single Cycle chương trình con phục vụ ngắt thực hiện những công việc sau: - Thiết lập chế độ làm việc DMA cho khối dữ liệu tiếp theo - Thiết lập chế độ cho DSP làm việc với khối dữ liệu tiếp theo - Chuẩn bị vùng đệm cho khối dữ liệu tiếp theo - Báo ngắt cho Soundcard bằng cách đọc cổng 2xEh với soundcard 8 bit và 2xFh với soundcard 16 bit - Báo kết thúc ngắt cho PIC bằng cách ghi vào cổng 20h đến A0h Để ghép nối vào ra với Soundcard,người ta hay sử dụng chế độ Auto-Inittialized của DMA. Khi sử dụng chế độ Single Cycle âm thanh bị gián đoạn giữa các khối dữ liệu, điều này làm giảm chất lượng âm thanh.Trong chế độ Auto-Initialized chương trình con phục vụ ngắt thực hiện những công việc sau: - Chuẩn bị vùng đệm cho khối dữ liệu sau. - Báo ngắt cho Soundcard bằng cách đọc cổng 2xEh với soundcard 8 bit và 2xFh với soundcard 16 bit - Báo kết thúc ngắt cho PIC bằng cách ghi vào cổng 20h đến A0h

doc25 trang | Chia sẻ: oanh_nt | Lượt xem: 1393 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế hệ thống ghi âm số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời nói đầu Ngày nay cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật, vai trò của kỹ thuật số, kỹ thuật máy tính ngày càng trở nên to lớn. Nó xâm nhập vào mọi lãnh vực của đời sống xã hội. Nó thúc đẩy tự động hoá sản xuất, cũng như các sinh hoạt của con người. Trong khuôn khổ của một đề tài thực tập, dựa trên các nhu cầu thực tế, với nhiệm vụ thiết kế hệ thống ghi âm số điện thoại 8 kênh tự động, em đã tham khảo các mô hình đã có, đưa ra một số phương án khả thi. Phương án tối ưu nhất được thiết kế sơ đồ khối, sơ đồ ghép nối và các môdule phần mềm. Trong quá trình thực tập em cũng học được nhiều kiến thức và kinh nghiệm mới, tuy nhiên do trình độ còn hạn hẹp, ít kinh nghiệm nên đề tài còn nhiều thiếu sót. Em xin chân thành cảm ơn thầy Bùi Quốc Anh đã luôn tận tình hướng dẫn em trong quá trình hoàn thành đợt thực tập này. I.Nhiệm vụ Hệ thống ghi âm số cần thực hiện những nhiệm vụ sau: Thu tín hiệu thoại đồng thời trực tiếp từ 8 kênh thoại Mã hoá thành tín hiệu số Tổ chức lưu trữ Playback Phần cứng của hệ thống gồm Mạch thu và chuyển đổi tín hiệu tiếng nói Khối điều khiển Lưu trữ Playback(Sound card) Phần mềm bao gồm Chương trình điều khiển thu tín hiệu thoại Tổ chức lưu trữ thành file Chương trình playback. Chuyển đổi tín hiệu Khối điều khiển Playback 8 Phone Data base Sơ đồ khối của hệ thống ghi âm Hệ thống có nhiệm vụ ghi âm điện thoại đồng thời trên 8 kênh. Do vậy yêu cầu đầu tiên là phải ghi đây đủ, chính xác mọi cuộc thoại tại tất cả các kênh. Các kênh thoại là ngẫu nhiên. Trong tình huống lớn nhất là cả 8 kênh cùng có cuộc thoại. Do đó hệ thống phải có khả năng xử lý và được thiết kế để có thể thu âm được cả 8 kênh. Các kênh truyền tin, thiết bị điều khiển phải có tốc độ đủ lớn. Hệ thống cần xác định được trạng thái của các kênh. Tín hiệu thoại là tín hiệu tiếng nói, để xử lý và lưu trữ cần phải chuyển về tín hiệu số. Dựa các đặc tính của tín hiệu tiếng nói ta có thể mã hoá PCM 8bit theo luật m hoặc luật A, vừa tiết kiệm dung lượng lưu trữ, đường truyền vẫn đảm bảo được chất lượng âm thanh. Việc ghi âm các cuộc đàm thoại chủ yếu phục vụ cho việc giám sát, do đó các cuộc thoại phải được lưu trữ hợp lý, dạng cơ sở dữ liệu để dễ dàng cho việc tìm kiếm, playback. Phải lưu trữ đầy đủ các thông tin của cuộc đàm thoại như thời lượng, thời gian bắt đầu,kết thúc...Cập nhật các cuộc thoại theo thời gian thực, nên cơ sở dữ liệu cần tổ chức để đáp ứng được tốc độ của hệ thống. Các cuộc thoại phải được lưu trữ trong một thời gian nhất định(1,2 năm) nên tiết bị lưu trữ cần có dung lượng đủ lớn. Phát lại các cuộc thoại diễn ra đồng thời với việc ghi âm. Hệ thống cần xây dựng chương trình điều khiển soundcard, chương trình ứng dụng để truy cập cơ sở dữ liệu và phát lại các cuộc thoại thông qua sound card. Phương án hiện có Hiện nay, tại một số cơ sở có nhu cầu ghi âm điện thoại được trang bị các máy ghi âm công nghiệp của nước ngoài, giá thành khá cao khoảng vài trăm triệu VND. Tại trung tâm điều độ lưới điện miền Bắc A1, đang sử dụng thiết bị ghi âm CR500T comunication recorder của hãng TEAC corporation. Thiết bị này sử dụng một hệ vi xử lý chuyên dụng, ghi âm trực tiếp từ đường điện thoại. Sau đây là một số đặc điểm kỹ thuật của thiết bị này. 1. Mô tả sơ bộ +Thiết bị cho phép ghi lại các cuộc đàm thoại có thời lượng dài. +Có khả năng thu từ 8 đến 56 kênh htoại đồng thời, có các chế độ 8, 16, 24, 32, 40, 48, 56 kênh. +Tín hiệu tiếng nói được mã PCM 8 bit theo luật m +Thông tin được lưu trữ trên băng từ : DAT (DDS2 standard), 3.5” MO(magneto optical) drive (ISO/IEC CD15041 standard) hoặc 5” MO drive (ISO/IEC CD14517 standard) 2. Đặc điểm + Ghi âm hiệu quả: Một băng ghi đơn DDS2- standard có thể ghi 850 giờ kênh. Một đĩa 3.5” MO 640MB ghi được 150 giờ kênh + Hai driver điều khiển ghi âm: cho phép thay đổi chế độ: serial mode hay dual mode + Khối xác định tín hiệu thoại chuyên dụng + Bộ Time code + Recall + Playback trong khi recording + Có khả năng tìm kiếm các cuộc đàm thoại theo thời gian cuộc gọi hoặc theo số của cuộc gọi. + Điều chỉnh tốc độ play cho phù hợp với người nghe lại cuộc gọi + Có thể phát lẫn nhiều kênh đồng thời + Có thể tự động xác định thời điểm bắt đầu cuộc gọi để ghi âm do có hỗ trợ VOX 3. Các khối chức năng chính +Recording · Thiết bị này hỗ trợ 3 kiểu ghi âm. Mỗi kênh có thể sử dụng một kiểu ghi âm khac nhau: Ghi âm từ thời điểm bắt đầu liên lạc(OFF HOOK) đến thời điểm kết thúc liên lạc(ON HOOK) bừng cách xác định dòng điện trên đường dây điện thoại. Ghi âm voice, sử dụng chức năng VOX. Khi trên kênh thoại không có tín hiệu thoại trên 6 giây sẽ kết thúc ghi âm Ghi âm đặc biệt dùng cho các tín hiệu điều khiển mở rộng · Ghi 10 chữ số cuối cùng bằng việc xác định tín hiệu DTMF của mỗi cuộc gọi · Xác định CallerID ·Ghi thông tin về cuộc gọi Số thứ tự kênh của cuộc gọi Thời điểm bắt đầu cuộc gọi Thời điểm kết thúc cuộc gọi Số điện thoại gọi(DTMF) · Ghi thời gian ngày tháng bắt đầu cuộc gọi · Dual operation · Serial operation · Endless operation · Single operation +Playback and monitor · Chức năng monitor: Có thể nghe 4 kênh đồng thời( cũng có thể tất cả các kênh). Trong khi đang, có thể giám sát voice input của mỗi kênh · Tìm kiếm : Có thể tìm theo thời gian hoặc số cuộc gọi · Instant recall · Pause : pause play mode · Skip Forward và Skip back · FAST/SLOW · Fast Forward và rewind + Time code · Xác định thời gian theo : Year, Month, Day, Hour, Minute · Có thể lựa chọn time code IRIG-B · Đồng bộ cho hai hoặc nhiều CR-500 cùng hoạt động + Điều hành từ xa và báo động · Điều hành từ xa - Điều khiển từ xa dùng RS-232C - Không đồng bộ, 9600(mặc định),19200,38400,57600,115200 bps - 8 bits data, 1 bit stop, no parity, no procedure · Báo động khi media end, lỗi ổ A,B,HDD, lỗi kênh, lỗi time code,Quạt dừng + Các chức năng khác: · Màn hình LCD 4 characters ´ 4 lines · UPS cấp nguồn thêm 5 phút kể từ khi mất nguồn cấp · Power switch OFF protect · Chức năng tự kiểm tra khi các thiết bị khi bắt đầu hoạt động 4.Các thông số + Voice System · Tần số lấy mẫu 8Khz · Số bit lượng tử 8 bits(bằng luật m) · Dải tần 300 đến 3400Hz · S/N ratio 40dB hoặc hơn · Input level (-50 đến 0 dBV) với AGC · Dải AGC -50 đến –30 dBV(-48 đến –28dBm) at maximum sensitivity -20 đến 0 dBV(-18 đến 2 dBm) at maximum sensitivity ·Trở kháng đầu vào 10kW hoặc hơn(tại 1kHz) ·Monitor output -2.2dBV´1(RCA pin jack, AUX I/Oconnector) -40dBV´1(3.5 Æ jack) · Speaker output 0.5W · Earphone output 1mW · Dải Biến đổi VOX -50 đến –20 dBV · BEEP TONE output -30dBm hoặc nhỏ hơn(FCC standard) + Hệ thống điều khiển · Phương tiện ghi âm -Băng từ theo chuẩn DDS standart 60m(1.3GB) 90m(2GB) · DDS driver theo chuẩn DDS standard, không nén · Thời gian ghi âm -CR-500T 120m tape ghi được 850 giờ kênh · Đơn vị truyền thông nhỏ nhất : 16 seconds · Thời gian điều chỉnh đồng hồ: Khoảng 1 tháng + Các thông số chung · Nguồn cấp 90 – 132 VAC, 50/60 Hz · Tiêu thụ nguồn 160 –200 VA Đây là một thiết bị ghi âm chuyên dụng, do vậy có nhiều ưu điểm Có thể ghi âm đồng thời được 56 kênh. Có khả năng xác định tín hiệu thoại: tín hiệu Hook-off, tín hiệu âm thanh Nhiều chế độ linh hoạt Playbach trộn lẫn nhiều kênh Nhiều chức năng kèm theo khác Có giao tiếp RS-232 Thiết bị độc lập gọn nhẹ Tuy nhiên, nó cũng có một số nhược điểm: Giá thành quá cao Giao diện kém Khả năng tìm kiếm không linh hoạt Sử dụng băng từ nên dung lượng và chất lượng lưu trữ thấp. Các phương án đề xuất Dựa trên phân tích nhiệm vụ của hệ thống, đây là một hệ vi xử lý thời gian thực. Có thể xây dựng hệ thống theo các phương án sau: Xây dựng hệ nhúng dựa trên các vi điều khiển. Xây dựng vi mạch nối ghép với máy tính. 1. Xây dựng hệ thống ghi âm sử dụng vi điều khiển voice controll data status Mã hoá tín hiệu Xác định trạng thái tín hiệu Micro Controller Souncard Phone Database Sơ đồ khối của hệ thống Tín hiệu thoại được đưa qua bộ phận xác định trạng thái tín hiệu trên đường dây điện để xác định xem kênh thoại có được kết nối hay không. Tín hiệu trạng thái sẽ được đưa đến vi điều khiển. Tín hiệu thoại được đưa vào khối mã hoá thành dạng dữ liệu PCM. Dữ liệu sẽ được lưu trữ trong cơ sở dữ liệu. Khi có yêu cầu playback, dữ liệu sẽ được đưa qua soundcard ra loa. Trên sơ đồ khối, vi điều khiển phải nối ghép với khối thu thoại, khối lưu trữ, khối play back Vì đây là ứng dụng thời gian thực nên vi điều khiển cũng phải có khả năng xử lý thời gian thực, có thể là các vi điều khiển thuộc dòng RISC. Thiết bị lưu trữ có thể dùng đĩa cứng hoặc flash. Tuy nhiên việc phối ghép với đĩa cứng là rất phức tạp. Với những vi điều khiển không sử có hệ điều hành, thì cần lập trình điều khiển đĩa, tổ chức file. Do đó chi phí cho xây dựng phần mềm điều khiển là rất lớn. Những vi điều khiển có kèm hệ điều hành thì giá thành cao. Bộ nhớ sử dụng công nghệ Flash, hiện nay có dung lượng nhỏ và giá thành rất cao. Hơn nữa, vẫn phải xây dựng file system. Việc xây dựng khối playback, ta có thể sử dụng các vi mạch DAC, DSP để thiết kế một soundcard. Việc thiết kế này còn phức tạp hơn nhiệm vụ chính của hệ thống ghi âm. Có thể tạo các bus mở rộng như ISA để phối ghép với các soundcard có sẵn. Ta cũng có thể sử dụng riêng một máy tính PC có soundcard, chạy chương trình ứng dụng truy cập cơ sở dữ liệu để playback. Phương án này đòi hỏi xây dựng phần cứng khá phức tạp. Khối lượng cho phần mềm hệ thống cũng rất lớn. Do vậy chi phí thực hiện sẽ lớn. 2. Sử dụng card thu thoại ghép nối với PC PC là một hệ vi xử lý đa năng. Hiện nay PC ngày càng phổ biến và giá thành rẻ. PC có nhiều lựa chọn để mở rộng qua các rãnh cắm mở rộng ISA, PCI, USB hoặc các cổng vào ra. Một trong nhưng ưu điểm lớn trong việc sử dụng PC là PC đã có các hệ điều hành hoàn chỉnh. Việc điều khiển phối ghép với đĩa cứng hay soundcard được hệ điều hành hỗ trợ. Hệ thống file đã có sẵn. PC có giao diện thuận tiện, dễ xây dựng các ứng dụng trên đó. Hơn nữa ta vẫn có thể sử dụng máy PC cho nhiều chức năng khác ngoài chức năng điều khiển ghi âm. Thiết kế hệ thống ghi âm số điều khiển bằng PC Hệ thống bao gồm các thiết bị phần cứng và các module phần mềm. Phần cứng của hệ thống ghi âm số nhiều kênh dùng PC cần phải xây dựng là card thu thoại nhiều kênh. Các module phần mềm bao gồm: Phần mềm điều khiển card thu thoại Tổ chức cơ sở dữ liệu Điều khiển soundcard Chương trình ứng dụng playback Card thu thoại nhiều kênh Bản mạch mở rộng có thể được nối ghép với PC qua bus ISA, USB hay cổng máy in. Mạch phải có khả năng thu được đồng thời cả 8 kênh. Tín hiệu thoại được mã hoá PCM 8 bit, tần số lấy mẫu là 8 kHz, thì tốc độ truyền dữ liệu âm thanh phải đạt 64kbyte/s. Ngoài ra còn có tín hiệu trạng thái, điều khiển và trễ của PC, do vậy tốc độ bus mở rộng phải đạt vài trăm kbyte/s. Các bus ISA, USB có thể đáp ứng được tốc độ này, nhưng có thể nối ghép qua cổng LPT vừa đơn giản, vừa đạt yêu cầu tốc độ. Cổng LPT ở chế độ EPP có thể truyền dữ liệu với tốc độ từ 500KByte-2Mbyte. Line IRQ phone Xác định trạng thái kênh Đệm SIPO 8bit C O D E C Thanh ghi trạng thái kênh AND SYNC 8 MUX 8´8_1 PC Select Data Status Sơ đồ khối của vi mạch thu thoại Card thu thoại gồm các khối chức năng sau: · Khối xác định trạng thái tín hiệu: Khối này có nhiệm vụ xác định loại tín hiệu trên đường điện thoại được đưa tới.Có nhiều cách xác định trạng thái: Xác định xem hiện có kết nối hay không kết nối(Hook-on,Hook-off) Xác định xem có tín hiệu thoại hay không Một máy điện thoại đều phải gồm có hai phần mạch cơ bản, đó là mạch thu phát tín hiệu chuông và mạch đàm thoại. Bộ xác định trạng thái sẽ xác định thời điểm máy điện thoại chuyển sang kênh thoại(Hook-on) để báo cho hệ thống biết sẵn sàng ghi âm kênh đó. Nếu kênh liên tục ở trạng thái ghi âm thì sau 1 chu kỳ ghi âm của kênh(ghi 1 byte dữ liệu dạng PCM), thì khối này lại ghi vào thanh ghi trạng thái thông tin về kênh. Các tín hiệu trạng thái kênh kết hợp lại qua cổng AND tạo thành yêu cầu ngắt đưa về CPU. · Codec: Codec là bộ mã hoá và giải mã tín hiệu. Một số vi mạch codec dành riêng cho tín hiệu tiếng nói. Khối này có nhiệm vụ chuyển đổi ADC,mã hoá tín hiệu tiếng nói thành dạng PCM 8 bit theo luật m. Vi mạch TP3054 của National là một IC chuyên dùng cho mã hoá tiếng nói. Tín hiệu vào là tín hiệu tiếng nói trên điện thoại đưa đến chân VFX.Tín hiệu đưa ra là nối tiếp tại đầu ra 3 trạng thái DX. Chu kỳ lấy mẫu được đưa vào chân FSx(8kHz) Sau 8 chu kỳ đồng hồ tại chân BCLKX thì TP3054 sẽ đưa ra dữ liệu mã hoá của một mẫu. Dữ liệu này sẽ được đưa qua bộ đệm để chuyển nối tiếp thành song song (SIPO)vào xử lý. · Bộ dồn kênh: Bộ dồn kênh bao gồm 8 khối Mux 8-1 có khả năng chuyển song song một byte dữ liệu của một kênh được chọn về PC. 8 đầu ra của MUX sẽ nối với thanh ghi dữ liệu của cổng LPT. Tín hiệu chọn kênh và tín hiệu chuyển dữ liệu đưa ra từ PC và được điều khiển bằng chương trình con phục vụ ngắt. · Thanh ghi trạng thái kênh Thanh ghi này là thanh ghi 8 bit, có thể vào ra song song. Mỗi bit của thanh ghi là cờ của kênh, báo hiệu trạng thái của kênh là đang kết nối hay không. Bit i =0 kênh đang rỗi =1 kênh bận(active) Tín hiệu trạng thái của các kênh được đưa đến đầu vào song song của thanh ghi. PC sẽ đọc nội dung của thanh ghi khi xử lý ngắt. Hoạt động : Tín hiệu điện thoại qua khối xác định trạng thái kênh. Nếu 1 kênh có kết nối sẽ tạo một ngắt đưa về PC đồng thời ghi vào thanh ghi trạng thái và chuyển tín hiệu thoại sang bộ codec. Bộ codec sẽ mã hoá tín hiệu âm thanh thành dạng PCM 8bit, đưa ra bộ đệm SIPO, sau đó chuyển đên MUX. Chương trình con phục vụ ngắt sẽ đọc thanh ghi trạng thái xác định các kênh active, rồi thực hiện một vòng lặp lấy dữ liệu từ các kênh đang active. IRQ Sơ đồ nguyên lý của card thu thoại Trên sơ đồ ghép nối sử dụng các IC sau: IC TP3054 : bộ codec IC TP3155: khối tạo xung đồng bộ cho TP3054 IC 74LS164: thanh ghi dịch SIPO 8bit IC 74LS151: MUX 8-1 IC MUX 2-1 IC 74199: thanh ghi vào ra song song 8 bit Tổ chức cơ sở dữ liệu Dữ liệu lưu trữ là các file âm thanh dưới định dạng file *.wav dạng PCM 8 bit. Những dữ liệu này sẽ được cập nhật bởi hệ thống ghi âm và được truy xuất bởi trình ứng dụng playback để giám sát, kiểm tra nội dung các cuộc thoại. Do vậy, dữ liệu cần phải được tổ chức sao cho cập nhật nhanh rong gian thực, dễ dàng tìm kiếm. Sử dụng PC có sẵn hệ điều hành, thì việc tổ chức lưu trữ trên những đĩa cứng dung lượng lớn trở nên dễ dàng. Trong việc giám sát các cuộc gọi, một thông tin quan trọng nhất để xác định các cuộc gọi là thời gian diễn ra các cuộc gọi. Do đó hệ thống tổ chức lưu trữ các file âm thanh sẽ được lưu theo cơ chế phân cấp về thời gian. Dữ liệu lưu trữ của hệ thống sẽ lưu trữ theo từng năm. Tất cả các cuộc gọi ghi được trong năm sẽ lưu trữ theo một thư mục với tên yearxxxx(xxxx: tên năm). Trong mỗi thư mục năm sẽ có một file ghi thông tinphục vụ cho việc cập nhật và tìm kiếm :info.rcd. Mọi truy cập đến các cuộc thoại được ghi trong một năm đều phải truy cập qua file này. Mỗi một cuộc thoại của mỗi kênh sẽ được lưu vào các file *wav riêng. File info.rcd chứa một số các cấu trúc dữ liệu cơ bản để phục vụ cho việc cập nhật và tìm kiếm được nhanh chóng. Phần đầu file là một mảng cố định hai chiều các bản ghi. Mỗi phần tử của mảng này là header của một danh sách liên kết. Cấu trúc của phần tử Header so với các phần tử còn lại trong danh sách liên kết là khác nhau. File *.wav File *.wav CH1 CH2 CH3 CH4 CH5 CH6 CH7 CH8 NULL 372 phần tử File *.wav File *.wav File *.wav NULL File *.wav Cấu trúc dữ liệu của file info.rcd để quản lý các file *.wav Thông tin về các file *.wav được phân cấp theo kênh và theo thời gian. Thời gian được phân cấp theo tháng, ngày, giờ phút, giây. Mảng hai chiều Manage sẽ cung cấp thông tin về kênh, tháng và ngày. Mỗi phần tử của mảng sẽ là Header của danh sách liên kết chứa thông tin về các cuộc thoại của một kênh trong một ngày. Cấu trúc của một phân tử của mảng hai chiều: struct channeldate { int Totalfile; //tổng số cuộc gọi trong một ngày int Firstposition; // vị trí của phần tử đầu tiên của //danh sách liên kết trong file conversation * Firstlink;// con trỏ tới phần tử đầu tiên // của danh sách liên kết }; Để truy cập đến bảng thông tin kênh c,tại ngày thứ d tháng m, thì địa chỉ của nó là: Manage [c] [(m-1)*31+d] Cột là thông tin về kênh, hàng thông tin về ngày trong năm. Mỗi cột sẽ có 372 phần tử, do quy ước tất cả các tháng trong năm đều có 31 ngày để có được công thức truy cập mảng trực tiếp. Danh sách liên kết đơn mang thông tin của các cuộc thoại trong ngày được ghi theo trật tự thời gian. Cấu trúc của một phần tử trong danh sách liên kết: struct conversation { int hour; //giờ cuộc thoại bắt đầu int minute; //phút cuộc thoại bắt đầu int second; //giây cuộc thoại bắt đầu int longtime; // thời gian cuộc gọi tính bằng giây int dial; //quay số hay không int phonenumber; //số điện thoại liên lạc phụ thuộc //trường dial char* filename; // đường dẫn tới file *.wav int Nextposition; // vị trí của phân tử tiếp theo trên file conversation * Nextlink;// con trỏ tới phần tử tiếp theo }; Đặt mặc định vị trí NULL trong file là 0. Cấu trúc này lưu trữ thông tin về giờ, phút, giây diễn ra cuộc thoại, thời gian cuộc gọi, máy gọi đi(số điện thoại được gọi) hay bị gọi tới(số máy gọi tới). Cấu trúc sẽ lưu trữ đường dẫn tới file *.wav chứa nội dung của cuộc gọi. Hai trường Nextposition và Nextlink dùng để tổ chức danh sách liên kết trong file và trong bộ nhớ trong. Việc lưu trữ thông tin của cuộc thoại trong một ngày bằng một danh sách liên kết tạo sự linh hoạt trong các cập nhật vào file info.rcd, do không thể biết trước được số cuộc gọi diễn ra trong ngày. Hơn nữa, số cuộc gọi trong một ngày không phải lớn lắm, nên dễ dàng cho việc tìm kiếm. Truy xuất cấu trúc dữ liệu trên, phải liên tục đọc file, làm việc với bộ nhớ ngoài tốc độ sẽ chậm, không phù hợp với các ứng dụng thời gian thực. tuy nhiên có thể xây dựng các danh sách liên kết trong bộ nhớ trong dựa trên các trường Firstlink và Nextlink. Sau một thời gian xác định sẽ cập nhật lại vào file. 3.Các module phần mềm Phần mềm điều khiển card thu thoại Phương pháp vào ra với card thu thoại là sử dụng ngắt. Tại chế độ EPP của cổng LTP thì chân 10 (Ack) là chân báo ngắt. Chân này được đưa đến chân IRQ7 của vi mạch PIC8259 tương ứng với vector ngắt 0Fh. Chế độ EPP của cổng LPT phải được khởi động bằng cách khởi động vi mạch superIO hỗ trợ cho cổng LPT. Phần mềm điều khiển sẽ có hai chức năng : Khởi động cho card thu thoại Chương trinh con phục vụ ngắt Khởi động cho card thu thoại thực hiện theo các bước Khởi động chế độ EPP của cổng LPT Cài dặt chương trình con phục vụ ngắt tại vector ngắt 0Fh Sơ đồ khối của chương trình con phục vụ ngắt Bắt đầu Đọc tg trạng thái i = 8 bit i 1->0 kênh i active Đóng file bit i 0->1 mở file mới Đưa ra tín hiệu chọn kênh Ghi dữ liệu vào file i=i-1 i>0 kết thúc b.Điều khiển soundcard và playback Các soundcard nối ghép với PC qua ISA hoặc PCI bus. Các soundcard này theo chuẩn của Blaster.Một soundcard gồm các bộ phận khối sau: Bộ xử lý tín hiệu số Bộ tổng hợp âm thanh Giao diện MIDI (musical instrument digital interface) Giao diện với CD-ROM Hai khối trên thường được tích hợp trên cùng một bộ phận là DSP(Digital Signal Processing) Soundcard Blaster có các cổng vào ra có thể lập trình được. Địa chỉ cơ sở của card là 2x0h(x có thể là 2,4,6,8). Trên card có 20 cổng vào ra dùng cho FM synthesized music, mixed setting, DSP programming và CD-ROM access. Trong số cổng I/O, có 5 cổng dành cho lập trình DSP. IOaddress Description Access Base+6h Reset DSP Write only Base+Ah DSP read data port Read only Base+Ch DSP write command/data Write Base+Ch DSP write buffer status Read Base+Eh DSP read buffer status Read only Lập trình trao đổi dữ liệu với soundcard qua DMA controller DMAC điều khiển truyền dữ liệu giữa thiết bị ngoại vi và bộ nhớ không qua CPU. Vi mạch 8237A điều khiển việc này. Trong IBM PC có hai DMAC, một truyền dữ liêu 8 bit, một truyền dữ liệu 16 bit. DMAC 1 dùng cho truyền 8 bit với các kênh 0, 1, 2, 3 , DMAC2 dùng cho truyền 16 bit với các kênh 4, 5, 6, 7. Các thanh ghi và địa chỉ của nó : - Các thanh ghi địa chỉ cơ sở và thanh ghi đếm Các thanh ghi điều khiển Các thanh ghi trang Các bước để khởi tạo trao đổi dữ liệu với soundcard qua DMA: Tính địa chỉ tuyến tính của vùng đệm Thiết lập mặt nạ Disable kênh trao đổi dữ liệu với soundcard : OUT TGMATNA,4+[channelDMA mod 4] ChannelDMA kênh DMA dùng để trao đổi dữ liệu với soundcard Xoá mạch lật F/L Ghi chế độ làm việc cho DMA 7 6 5 4 3 2 1 0 chọn kênh chế độ hoạt động Địa chỉ tăng/giảm chế độ truyền Cho phép tự khởi đầu Dạng thức của thanh ghi chế độ Để làm việc với soundcard, thanh ghi chế độ cần được thiết lập: chế độ hoạt động đặt ở chế độ chuyển từng byte, địa chỉ tăng. Chế độ khởi đầu đặt cho phép tự khởi đầu. Chế độ truyền đặt 01 cho playback và 10 cho recording. Kênh được chọn là kênh DMA dành cho soundcard. Sau đây là các giá trị của thanh ghi chế độ tương ứng với các chế độ làm việc của soundcard: · 48h + channelDMA : Single Cycle Playback · 58h + channelDMA : Auto-initialized Playback · 44h + channelDMA : Single Cycle Record · 54h + channelDMA : Auto-initialized Record Ghi offset của vùng đệm dữ liệu theo byte thấp và byte cao Ghi độ dài dữ liệu cần chuyển Ghi địa chỉ trang của vùng đệm vào thanh ghi trang của DMA Bỏ mặt nạ cho kênh Soundcard Lập trình playback Chương trình playback có hai nhiệm vụ chính: Lập trình truy cập cở sở dữ liệu Lập trình play back qua soundcard Truy cập cơ sở dữ liệu dựa trên các thủ tục tìm kiếm theo các trường khác nhau. Thủ tục tìm kiếm xây dựng theo các thuật toán tìm kiếm trên các cấu trúc dữ liệu cơ bản như đã trình bày ở phần trên. Kết quả tìm kiếm sẽ đưa ra list các file cần tìm. Để playback âm thanh cần tiến hành những bước sau: Xác định vị trí vùng đệm( không vượt quá 64KB) Thiết lập một chương trình con phục vụ ngắt Lập trình khởi tạo DMA Đặt tần số lấy mẫu cho DSP Ghi lệnh vào ra cho DSP(+Ch) Ghi chế độ truyền cho DSP Ghi kích thước khối dữ liệu cho DSP Các lệnh của DSP được ghi vào cổng +Ch của Soundcard. Các lệnh này sẽ quy định cách làm việc của soundcard với DMA D0: tạm dừng chế độ vào ra với DMA 8bit D4:Tiếp tục chế độ vào ra với DMA 8bit sau khi bị dừng bởi lệnh D0 D5: tạm dừng chế độ vào ra với DMA 16 bit D6: tiếp tục chế đọ vào ra với DMA 16 bit sau khi bị dừng bởi lệnh D2 D9: Thoát khỏi chế độ vào ra với DMA 16 bit sau khi truyền xong khối dữ liệu hiện tại DA: Thoát khỏi chế độ vào ra với DMA 8 bit sau khi truyền xong khối dữ liệu hiện tại E1: Lấy version của DSP Bx:Thiết lập chế độ vào ra với DMA 16 bit. Để thiết lập chế độ làm việc với DMA cần lần lượt gửi các thông tin sau đến cổng ghi/lệnh(+Ch): +Gửi lệnh với qui cách: 4 bit sau không đổi. Bit 3: khi ghi âm đặt bằng 1 Khi playback đặt bằng 0 Bit 2: quy định chế độ làm việc với DMA: Single Cycle hoặc auto-initialized. Bit 1 Có sử dụng hàng đợi hay không. Sử dụng hàng đợi sẽ làm tăng tốc độ truyền âm, không bị gián đoạn giữa các khối dữ liệu. + Gửi chế độ với quy cách: +Gửi kích thước khối dữ liệu(low/high) -Cx tương tự như Bx nhưng dùng cho DMA 8 bit · Chương trình con phục vụ ngắt: Vì có 2 chế độ vào ra dữ liệu với soundcard qua DMA là Single Cycle và Auto-Initialized, nên công việc của chương trình con phục vụ cho mỗi chế độ là khác nhau. Trong chế độ Single Cycle chương trình con phục vụ ngắt thực hiện những công việc sau: Thiết lập chế độ làm việc DMA cho khối dữ liệu tiếp theo Thiết lập chế độ cho DSP làm việc với khối dữ liệu tiếp theo Chuẩn bị vùng đệm cho khối dữ liệu tiếp theo Báo ngắt cho Soundcard bằng cách đọc cổng 2xEh với soundcard 8 bit và 2xFh với soundcard 16 bit Báo kết thúc ngắt cho PIC bằng cách ghi vào cổng 20h đến A0h Để ghép nối vào ra với Soundcard,người ta hay sử dụng chế độ Auto-Inittialized của DMA. Khi sử dụng chế độ Single Cycle âm thanh bị gián đoạn giữa các khối dữ liệu, điều này làm giảm chất lượng âm thanh.Trong chế độ Auto-Initialized chương trình con phục vụ ngắt thực hiện những công việc sau: Chuẩn bị vùng đệm cho khối dữ liệu sau. Báo ngắt cho Soundcard bằng cách đọc cổng 2xEh với soundcard 8 bit và 2xFh với soundcard 16 bit - Báo kết thúc ngắt cho PIC bằng cách ghi vào cổng 20h đến A0h Mục lục Lời nói đầu……………………………………………………………………………….1 I.Nhiệm vụ………………………………………………………………………………..2 II. Phương án hiện có…………………………………………………………………..3 1.Mô tả……………………… ..………………………………………………………3 2.Đặc điểm……………………………………………………………………………4 3.Các khối chức năng chính………………………………………………………...4 4.Các thông số………………………………………………………………………..6 III. Các phương án đề xuất…………………………………………………………….8 Xây dựng hệ thông ghi âm sử dụng vi điều khiển…………………………...8 Hệ thống ghi âm sử dụng card thu thoại ghép nối với PC………………….9 VI.Thiết kế hệ thông ghi âm số điều khiển bằng PC………………………………...9 Card thu thoại 8 kênh………………………………………………………….10 Tổ chức lưu trữ………………………………………………………………...13 Các module phần mềm………………………………………………………..16 a.Phần mềm điều khiển card thu thoại………………………………………16 b.Phần mềm điều khiển sound card và playback…………………………..18 Mục lục………………………………………………………………………………….24 Tài liệu tham khảo……………………………………………………………………..25 Tài liệu tham khảo 1.Bài giảng môn Kỹ thuật ghép nối - Bùi Quốc Anh 2.Kỹ Thuật Vi xử lý – Văn Thế Minh 3.Kỹ thuật ghép nối máy tính – Ngô Diên Tập 4.Kỹ thuật số-Nguyễn Thuý Vân 5.Micro Processor and Interface-D.Hall-MCGraw Hill

Các file đính kèm theo tài liệu này:

  • docBK0048.DOC
Tài liệu liên quan