Đề 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
25 trang |
Chia sẻ: oanh_nt | Lượt xem: 1402 | Lượt tải: 0
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:
- BK0048.DOC