1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ nhúng nhận dạng tiếng việt nói

134 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Hệ Nhúng Nhận Dạng Tiếng Việt Nói
Tác giả Lê Bá Vui
Người hướng dẫn TS. Trịnh Văn Loan
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Xử lý Thông tin và Truyền thông
Thể loại luận văn thạc sĩ
Năm xuất bản 2009
Thành phố Hà Nội
Định dạng
Số trang 134
Dung lượng 9,64 MB

Nội dung

Hệ thống ụnhúng đượ ử ục s d ng trong rất nhiều lĩnh v c từự các thi t b cao cế ị ấp như v ệtinh, tên lửa, tàu con thoi đ n các thiết bị tiêu dùng như lò vi ba, máy sấy, máy hút bụi… ếTh

Trang 1

B Ộ GIÁO DỤ C VÀ ĐÀO T Ạ O TRƯ NG Đ Ờ Ạ I H C BÁCH KHOA HÀ NỘI Ọ - * - -

Hà Nội, 2009

Trang 2

B Ộ GIÁO DỤ C VÀ ĐÀO T Ạ O TRƯ NG Đ Ờ Ạ I H C BÁCH KHOA HÀ NỘI Ọ - * -

Trang 3

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 1 -

LỜI MỞ ĐẦU

Nhận dạng tiếng nói tự động hiện nay đã không còn xa lạ ớ v i con ngư i Đã có ờnhững hệ ố th ng đư c xây dựng có sử ụợ d ng nhận dạng tiếng nói như điều khiển máy tính bằng giọng nói, quay số ệ đi n thoại bằng giọng nói… Tuy nhiên, các hệ thống

đó đ u đề ược phát tri n dựể a trên n n công ngh hiệề ệ n đạ ớ ệ ối v i h th ng máy tính lớn

và cơ sở ữ d liệu tiếng nói khá hoàn chỉnh (ngôn ngữ ch y u là tiếủ ế ng Anh, tiếng Pháp) Ở Vi t Nam, việc nghiên cệ ứu và phát triển hệ ố th ng nhận d ng tiạ ếng nói vẫn còn đang bưở ớc đ u và chủ ếầ y u th c hi n trên máy tính ự ệ và v c phát tri n hệ ốiệ ể th ng

nhận dạng tiếng nói trên các hệ nhúng chưa được nghiên cứu nhiề Với mục đích u.tìm hiểu và góp phần phát triển chương trình nh n dạng tiếậ ng nói trên h nhúng, tác ệ giả đã th c hiện đề tài “Thiế ế ệt k h nhúng nh n dạng tiếng Việt nói” ậ Đề tài này

thực hiện việc tìm hiểu và thiế ế ệt k h nhúng có kh năng nh n dạng từ ếng Việt rời ả ậ ti

rạc, số lượng từ ựng hạn chế v

Để hoàn thành đư c lu n văn, tôi xin c m ơn TS TRỊNH VĂN LOAN, m c dù r t ợ ậ ả ặ ấ

bận rộn nhưng đã dành thời gian hư ng dẫn tận tình và cho tôi những lời khuyên rất ớquý báu

Đại học Bách hoa Hà ội, 11/2009

Học viên thực hiện

Lê Bá Vui

Trang 4

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 2 -

M ỤC LỤ C PHẦN I T NG QUAN VỀ ỆỔ H NHÚNG 9

1.1 Gi i thiớ ệu chung 9

1.2 Đặc đi m h ể ệnhúng 9

1.3 Các kiến trúc phần mềm hệ ố th ng nhúng 12

1.4 Gi i thiớ ệu mộ ố ệt s h nhúng 15

1.4.1 DSK C6713 15

1.4.2 T-Engine 17

PHẦN II TÌM HI U DSPIC30F6014A VÀ CODEC SI3000 21Ể 2.1 Vi điều khi n dsPIC30F6014A 21ể 2.1.1 Giới thiệu chung 21

2.1.2 Nhân vi điều khi n dsPIC30F6014A 22ể 2.2 Module DCI (Data Converter Interface) 24

2.2.1 Giới thiệu chung về module DCI 24

2.2.2 Hoạt động của khối DCI 26

2.3 Codec Si3000 37

2.3.1 Sơ đồ chân 37

2.3.2 Đ c điặ ểm c a codec Si3000 38ủ 2.3.3 Các thanh ghi 39

2.3.4 Mô tả ch c năng 43ứ PHẦN III T NG QUAN VỔ Ề LÝ THUYẾT NH N D NG TIẬ Ạ ẾNG NÓI 48

3.1 Gi i thiớ ệu chung 48

3.2 Tín hiệu tiếng nói 49

3.2.1 Cơ chế ạ t o ti ng nói 49ế 3.2.2 Biểu di n tín hiễ ệu tiếng nói 51

3.3 Trích chọn tham số tiếng nói 52

3.3.1 Phương pháp tiên đoán tuyến tính 52

Trang 5

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 3 -

3.3.2 Phương pháp phổmel – tần số 53

3.3.2.1 Cepstrum 54

3.3.2.2 Thang đo mel 55

3.4 Trích chọn các tham số đặ c trưng ti ng nói theo phương pháp phổế mel – tần s ố 56

3.4.1 Xác định khoảng lặng 57

3.4.2 Lọc hi u ch nh 58ệ ỉ 3.4.3 Phân khung 59

3.4.4 Lấy cử ổa s 60

3.4.5 Tính DFT 60

3.4.6 Băng lọc tam giác 61

3.4.7 Biến đ i Cosine rời rạ 62ổ c 3.4.8 Cepstral có trọng số 62

3.5 Lượng t ửhóa vector 62

3.5.1 Đ c điặ ểm của lượng tử hóa vector 63

3.5.2 Xây dựng codebook 64

3.6 Mô hình Markov ẩn 66

3.6.1 Giới thiệu chung về mô hình Markov ẩn 66

3.6.2 Mô hình Markov rờ ại r c v m t th i gian 66ề ặ ờ 3.6.3 Mô hình Markov n rẩ ờ ại r c về mặt th i gian 67ờ 3.6.4 Ba bài toán cơ bản c a mô hình Markov n 68ủ ẩ 3.6.4.1 Bài toán thứ nh t, đánh giá xác su t 68ấ ấ 3.6.4.2 Bài toán th hai, tìm dãy tr ng thái tứ ạ ối ưu 70

3.6.4.3 Bài toán thứ ba, ư c lướ ợng tham số ủ c a mô hình 71

3.6.5 Những vấn đ khác trong mô hình Markov ẩn 73ề 3.6.5.1 Các loại mô hình Markov ẩn 73

3.6.5.2 Mật độ quan sát r i r c và mờ ạ ật độ quan sát liên t c 76ụ 3.6.5.3 Hu n luyấ ện với nhiều dãy quan sát 76 3.6.5.4 Khở ại t o các tham s c lư ng của mô hình 77ố ướ ợ

Trang 6

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 4 -

PHẦN IV THIẾT KẾ Ệ H THỐNG NHÚNG 78

4.1 Yêu cầu chung của h th ng 78ệ ố 4.2 Thiế ết k sơ đ kh i h thồ ố ệ ống nhúng 78

4.3 Thiế ết k chi ti t ph n cứng 79ế ầ 4.3.1 Khối vi đi u khiển dsPIC 79ề 4.3.2 Khối giao tiếp Codec 81

4.3.3 Khối giao tiếp MMC 82

4.3.4 Kh i ghép nố ối LCD 83

4.3.5 Kh i ghép nố ối UART 83

4.3.6 Kh i cung c p nguố ấ ồn 84

4.3.7 Kh i ghép nố ối các nút b m ấ 85

4.3.8 Khối giao tiếp Led 86

4.3.9 Khối tạo dao động 86

4.3.10 Kh i ghép nố ố ới v i kit l p trình 87ậ 4.4 Thiế ết k chi ti t ph n mềm 87ế ầ 4.4.1 Giao tiếp với Codec 87

4.4.2 Giao tiếp với MMC 89

4.4.3 Giao tiếp với LCD 90

4.4.4 Giao tiếp với nút bấm 92

4.4.5 Giao tiếp với Led 93

4.4.6 Giao tiếp UART 93

4.4.7 Mô đun trích chọn đặc trưng 94

4.4.8 Mô đun nhận dạng 95

4.4.9 Mô đun tạo codebook (thực hiện trên PC) 97

4.4.10 Mô đun huấn luyện (thực hiện trên PC) 99

4.4.11 Một số phương pháp tối ưu chương trình 100

PHẦN V KẾT QUẢ THỬ NGHI M H TH NG 103Ệ Ệ Ố PHẦN VI KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 110

Trang 7

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 5 -

PHỤ Ụ L CBài báo d ếựki n tham gia h i nghịộ FAIR tháng 12 năm 2009 t i Hà N iạ ộ 111TÀI LIỆU THAM KHẢO 122

Trang 8

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 6 -

M ỤC LỤC HÌNH

Hình 1.1 Kit xử lý tín hiệu số C6713 15Hình 1.2 Sơ đồ kh i DSK C6713 16ốHình 1.3 Kit T-Engine SH7760 19Hình 1.4 Sơ đồ kh i kit T-Engine SH7760 20ốHình 2.1 Sơ đồ các chân c a dsPIC30F6014A-30I/PF 22ủHình 2.2 Sơ đồ kh i module DCI 26ốHình 2.3 Khung đồng b th i gian, ch ộ ờ ế độđa kênh 30Hình 2.4 Khung đồng b th i gian, AC-link Start c a khung 30ộ ờ ủHình 2.5 Khung giao di n Iệ 2S đồng bộ thời gian 30Hình 2.6 Sơ đồ ấ ạ c u t o chân Si3000 37Hình 2.7 Sơ đồ mô t chứả c năng của Si3000 43Hình 2.8 Giản đ thời gian khi yêu c u mồ ầ ột khung th c p 45ứ ấHình 2.9 Giản đ th i gian của chu kỳ viết trong khung thứ ấồ ờ c p 46Hình 2.10 Giản đ th i gian c a chu kỳ đọồ ờ ủ c trong khung thứ ấ c p 46Hình 2.11 Hệ ố th ng phát clock Si3000 46Hình 3.1 Sơ đồ quá trình hình thành và cảm nhận ti ng nói 49ếHình 3.2 Bộ máy phát âm c a con ngư i 50ủ ờHình 3.3 Sơ đồ kh i bộ ố máy phát âm 50Hình 3.4 Bi u diể ễn tín hi u trong miềệ n th i gian 51ờHình 3.5 Bi u diể ễn tín hi u trong miề ầệ n t n số 51Hình 3.6 Bi u diể ễn Spectrogram c a tín hi u 52ủ ệHình 3.7 Mô hình của tuy n âmế 52Hình 3.8 Các bước tính toán cepstrum th c 54ựHình 3.9.Cepstrum c a tín hi u kích thích và bủ ệ ộ ọ l c tuyến âm 55Hình 3.10 Đồ ị th hàm chuy n đ i gi a Hz và mel 56ể ổ ữHình 3.11 Sơ đồ trích ch n tham s c trưng ti ng nói 57ọ ố đặ ế

Trang 9

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 7 -

Hình 3.12 Phân khung tín hiệu ti ng nói ế 59

Hình 3.13 Sơ đồ các băng l c tam giác 61ọ Hình 3.14 Mô hình Markov ẩn liên k t đ y đ v i 4 tr ng thái 74ế ầ ủ ớ ạ Hình 3.15 Mô hình Markov ẩn liên k t trái-phả ớế i v i 4 trạng thái 75

Hình 4.1 Sơ đồ kh i c a h ố ủ ệnhúng 78

Hình 4.2 Vi điều khi n dsPIC 80ể Hình 4.3 Giao tiếp với Codec Si3000 81

Hình 4.4 Giao tiếp với thẻ nh ớMMC 82

Hình 4.5 Ghép nối với LCD 83

Hình 4.6 Ghép nối với máy tính thông qua UART 84

Hình 4.7 Khối cung c p nguấ ồn cho hệ ố th ng 84

Hình 4.8 Giao tiếp với nút bấm 85

Hình 4.9 Giao tiếp với các đèn Led 86

Hình 4.10 Khố ại t o dao động 86

Hình 4.11 Kh ghép nối ối với kit l p trìnhậ 87

Hình 4.12 Sơ đồ ự th c hi n mô đun nh n dạng 95ệ ậ Hình 4.13 Sơ đồ th c hi n việ ạự ệ c t o codebook 97

Hình 4.14 Sơ đồ ự th c hi n module huệ ấn luyện mô hình 99 Hình 5.1 Hệ nhúng nh n d ng ti ng Vi t r i r c 103ậ ạ ế ệ ờ ạ

Trang 10

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 8 -

M ỤC LỤC BẢNG

Bảng 1.1 Các đặc tả cơ bản về T-Engine SH7760 19Bảng 2.1 Tần s clock tương ng v i t c đ l y m u 32ố ứ ớ ố ộ ấ ẫ

Bảng 2.2 Chức năng các chân c a Si3000 38ủ

Bảng 2.4 Các chế độ ủa Si3000 44 cBảng 5.1 Thử nghiệm hệ ố th ng nhận d ng cho mạ ột ngư i nói đã đư c hu n luyện.ờ ợ ấ 107Bảng 5.2 Thử nghiệm hệ ố th ng nhận d ng cho mạ ột ngư i nói chưa đư c huấn ờ ợ

luyện 108Bảng 5.3 Thử nghiệm hệ ố th ng nhận dạng với nhiều ngư i nói đã được huấn ờ

luyện 109Bảng 5.4 Thử nghiệm hệ ố th ng nhận dạng với ngư i nói chưa đư c huấn ờ ợ

luyện 109

Trang 11

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - 9 -

PH ẦN I TỔ NG QUAN V Ề Ệ H NHÚNG

1.1 Giới thiệu chung

H ệ thống nhúng (embedded system) được đ nh nghĩa là m t h th ng máy tính ị ộ ệ ốchuyên biệt đư c thi t kợ ế ế để thực hiện một chức năng chuyên d ng Hệ thống ụnhúng đượ ử ục s d ng trong rất nhiều lĩnh v c từự các thi t b cao cế ị ấp như v ệtinh, tên

lửa, tàu con thoi đ n các thiết bị tiêu dùng như lò vi ba, máy sấy, máy hút bụi… ế

Thị trư ng ần mờ ph ềm cho hệ ố th ng nhúng lớn hơn gấp nhi u lề ần so với phần mềm của những chiếc máy tính cá nhân PC Chẳng hạn, trong một chiếc xe hơi đ i mới ờ

có tới trên 80 chương trình x lý cho các ứng d ng tử ụ ừ ề đi u khi n, phanh, nể ạp nhiên

liệu, dẫn đư ng cho tớờ i túi khí…Và số lượng vi xử lý trên các hệ ống hiệth n đ i ạngày càng tăng

Theo thống kê của BCC Research Group, đến năm 2009, tổng thị trường của các hệ thống nhúng toàn c u sầ ẽ đo t khoảạ ng 88 tỷ USD Trong đó phần c ng là 78 tứ ỷ USD

và ph n mầ ềm chiếm 3,5 t Tuy nhiên tỷ ốc đ tăng trư ng của phầộ ở n m m nhúng sầ ẽ cao hơn và hiệ ạn t i đang ở ứ m c 16%/năm

1.2 Đặ c đi m h ể ệ nhúng

H ệ thống nhúng thư ng có một số đặờ c đi m chung như sau: ể

• Các hệ thống nhúng được thiết kế để ự th c hiện mộ ốt s nhi m vụệ chuyên d ng chứ ụkhông phải đóng vai trò là các h thệ ống máy tính đa ch c năng Mứ ột số ệ h ống đòi th

hỏi ràng buộc về tính hoạ ột đ ng thời gian thực đ đảm bảể o đ an toàn và tính ứng ộ

dụng; một số ệ thố h ng không đòi h i hoặc ràng buộc chặt chẽỏ , cho phép đơn gi n ảhóa hệ ố th ng phần cứng đ giảm thiểể u chi phí sản xu t ấ

• Một hệ thống nhúng thư ng không phảờ i là m t kh i riêng bi t mà là mộ ố ệ ột h ệ thống phứ ạc t p n m trong thiằ ế ịt b mà nó điều khi n ể

• Phần mềm đư c vi t cho các hợ ế ệ thống nhúng được gọi là firmware và đư c lưu tr ợ ữtrong các chip bộ nh chỉ đọớ c (read-only memory) hoặc bộ nh ớ flash chứ không phải là trong một ổ đĩa Phần mềm thư ng chạy với sốờ tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng v i kích thư c nhỏ, bộ nhớ ạớ ớ h n chế Sau đây, ta s đi sâu, xem xét cẽ ụ ể đặ th c điểm của các thành phần của hệ ố th ng nhúng

Trang 12

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 10

Giao diện

Các hệ thống nhúng có thể không có giao diện (đ i với nhữố ng hệ ố th ng đơn nhi m) ệhoặc có đ y đủầ giao di n giao tiếp vớệ i ngư i dùng tương t như các h điều hành ờ ự ệtrong các thi t bế ị để bàn Đ i vớố i các hệ thống đơn giản, thiết bị nhúng s d ng nút ử ụ

bấm, đèn LED và hi n thị chữ ỡ nhỏ hoặc chỉ hiển thị ốể c s , thư ng đi kèm vớờ i m t ộ

h ệ thống menu đơn giản

Còn trong một hệ thống phức tạp hơn, m t màn hình đ hộ ồ ọa, cảm ứng hoặc có các nút bấm ở ề l màn hình cho phép thực hi n các thao tác ph c tệ ứ ạp mà tối thiểu hóa được kho ng không gian cần sử ụả d ng; ý nghĩa c a các nút b m có thểủ ấ thay đ i theo ổmàn hình và các l a chự ọn Các hệ thống nhúng thư ng có một màn hình vờ ới một nút

bấm dạng cần đi u khiển (joystick button) Sự phát triển mạnh mẽ ủể c a m ng toàn ạ

cầu đã mang đ n cho những nhà thiết kế ệ nhúng một lựa chọn mới là sử ụng một ế h dgiao di n web thông qua việ ệc k t n i mế ố ạng Điều này có thể giúp tránh đư c chi phí ợcho những màn hình phức tạp nhưng đ ng thời vẫồ n cung cấp khả năng hi n thị và ểnhập liệu phứ ạp khi cần đến, thông qua mộc t t máy tính khác Đi u này là hết sức ề

hữu dụng đ i với các thiết bị điều khiển từ xa, cài đặố t vĩnh vi n Ví dụ, các router là ễcác thi t bế ị đã ng dụng tiệứ n ích này

Kiến trúc CPU

Các bộ ử x lý trong hệ thống nhúng có thể được chia thành hai lo i: vi xạ ử lý và vi điều khiển Các vi đi u khiểề n thư ng có các thi t b ngo i vi đư c tích h p trên chip ờ ế ị ạ ợ ợnhằm giảm kích thư c của hệ thống Có r t nhiớ ấ ều lo i ki n trúc CPU đư c s d ng ạ ế ợ ử ụtrong thi t kế ế ệ h nhúng như ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều này trái ngư c ợ

với các loại máy tính đ bàn, thường bị ạn chế ới một vài kiến trúc máy tính nhất ể h v

định Các h th ng nhúng có kích thướệ ố c nh và đư c thi t k hoạỏ ợ ế ế để t đ ng trong ộmôi trường công nghi p thườệ ng l a ch n PC/104 và PC/104++ lự ọ àm nền tảng Những hệ ố th ng này thường sử ụ d ng DOS, Linux, NetBSD hoặc các hệ ề đi u hành nhúng thời gian thực như QNX hay VxWorks Còn các h thệ ống nhúng có kích thước rất lớn thư ng s d ng m t cấu hình thông dụng là hệ thống on chip (System ờ ử ụ ộ

on a chip – SoC), một bảng mạch tích hợp cho một ứng dụng cụ ể th (an applicationspecific integrated circuit – ASIC) Sau đó nhân CPU được mua và thêm vào như

-một phần của thiết kế chip Một chiến lư c tương t là sử ụng FPGA (fieldợ ự d

Trang 13

-Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 11

programmable gate array) và l p trìnậ h cho nó với những thành phần nguyên lý thiết

k ế bao gồm cả CPU

Thiế ịt b ngo i vi

H ệ thống nhúng giao ti p vế ới bên ngoài thông qua các thi t bế ị ngoại vi, ví dụ như:

• Serial Communication Interfaces (SCI): RS-232, RS 422, RS 485 -

-• Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC và ESSI

• Universal Serial Bus (USB)

• Networks: Controller Area Network, LonWorks

• Bộ đị nh thời: PLL(s), Capture/Compare và Time Processing Units

• Discrete IO: General Purpose Input/Output (GPIO)

Công cụ phát tri n

Tương tự như các s n phẩả m ph n mềầ m khác, ph n mềầ m h thệ ống nhúng cũng được phát triển nhờ ệ vi c sử ụ d ng các trình biên dịch (compilers), chương trình d ch hợp ịngữ (assembler) ho c các công cặ ụ ỡ ố g r i (debuggers) Tuy nhiên, các nhà thi t kế ế ệ h thống nhúng có thể ử ụ s d ng mộ ốt s công cụ chuyên dụng như:

• Bộ ỡ ố g r i mạch hoặc các chương trình mô ph ng (emulator) ỏ

• Tiện ích đ thêm các giá tr checksum ho c CRC vào chương trình, giúp h th ng ể ị ặ ệ ốnhúng có thể kiểm tra tính hợ ệ ủp l c a chương trình đó

• Đối v i các h th ng x lý tín hiệu sớ ệ ố ử ố, ngư i phát triểờ n hệ thống có thể ử ụ s d ng phần mềm workbench như MathCad hoặc Mathematica để mô ph ng các phép toán ỏ

• Các trình biên d ch và trình liên k t (linker) chuyên dị ế ụng được sử ụ d ng đ t i ưu ể ốhóa một thi t b phầế ị n cứng

• Một hệ thống nhúng có th có ngôn ngể ữ ậ l p trình và công cụ thi t k riêng cế ế ủa nó hoặ ử ục s d ng và cả ếi ti n từ ộ m t ngôn ngữ đã có s n ẵ

Các công cụ ph n mềầ m có thể được t o ra b i các công ty phạ ở ần mềm chuyên dụng

v h ề ệ thống nhúng hoặc chuyển đ i từ các công cụ phát triển phần mềm GNU Đôi ổ

Trang 14

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 12

khi, các công c phát triụ ển dành cho máy tính cá nhân cũng đượ ử ục s d ng n u b x ế ộ ử

lý c a hủ ệ thống nhúng đó gần giống v i b x lý c a m t máy PC thông dụng ớ ộ ử ủ ộ

Độ tin c y

Các hệ th ng nhúng thư ng nằố ờ m trong các cỗ máy được kỳ ọ v ng là sẽ chạy hàng năm trời liên tục mà không b l i ho c có thểị ỗ ặ khôi ph c hệ thốụ ng khi g p l i Vì thế, ặ ỗcác phần mềm hệ thống nhúng được phát triển và kiểm thử ộ m t cách cẩn thận hơn

là phần mềm cho máy tính cá nhân Ngoài ra, các thi t bế ị ờ r i không đáng tin cậy như ổ đĩa, công t c ho c nút b m thư ng b h n ch s d ng Việc khôi phụắ ặ ấ ờ ị ạ ế ử ụ c h ệ

thống khi gặp lỗi có thể được th c hiự ện bằng cách sử ụ d ng các kỹ thuật như watchdog timer – nếu phần mềm không đ u đ n nhậề ặ n được các tín hiệu watchdog

định kì thì h th ng s b kh i đ ng l i ệ ố ẽ ị ở ộ ạ

Một số ấ v n đề c ụ thể ề độ tin cậy như: v

• Hệ ố th ng không thể ngừng để ử s a ch a m t cách an toàn, ví d ữ ộ ụnhư ở các h th ng ệ ốkhông gian, hệ ố th ng dây cáp dư i đáy bi n, các đèn hi u dớ ể ệ ẫn đường,… Gi i pháp ảđưa ra là chuyển sang s d ng các hệ thốử ụ ng con d trữự ho c các phầặ n m m cung ềcấp một phần chức năng

• Hệ ố th ng phải đư c chạy liên t c vì tính an toàn, ví dợ ụ ụ như các thiết bị ẫ d n đư ng ờmáy bay, thi t bế ị ể ki m soát đ ộan toàn trong các nhà máy hóa ch t,… Giấ ải pháp đưa

ra là lựa chọn backup hệ thống

• Nếu hệ th ng ng ng hoố ừ ạt động sẽ gây tổn th t rấ ất nhiều tiền của ví dụ như các

dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các nhà máy …

1.3 Các kiến trúc phần mềm hệ thống nhúng

Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như sau:

Vòng lặp kiể m soát đơn gi n ả

Theo thiết kế này, ph n mầ ềm đư c tợ ổ chức thành một vòng lặp đơn giản Vòng lặp

gọ ếi đ n các chương trình con, m i chương trình con qu n lý một phần của hệ thống ỗ ảphần cứng hoặc phần mềm

Trang 15

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 13

H ệ thống ngắ t đi u khiể ề n

Các hệ thống nhúng thư ng đư c điểu khiển bằng các ngắt Có nghĩa là các tác vụ ờ ợ

của hệ thống nhúng đư c kích hoạt bởi các loại sự kiện khác nhau Ví dụ, một ngắt ợ

có thể được sinh ra b i m t bở ộ ộ đị nh thời sau m t chu kộ ỳ được đ nh nghĩa trư c, ị ớ

hoặc bởi sự ện khi cổng nố ếki i ti p nhận đư c một byte nào đó ợ

Loại kiến trúc này thư ng đườ ợc sử ụ d ng trong các hệ ố th ng có bộ quản lý sự ện kiđơn giản, ng n gọắ n và cần độ ễ ấ tr th p H thệ ống này thường th c hi n mộự ệ t tác v ụđơn giản trong m t vòng l p chính Đôi khi, các tác v phứ ạộ ặ ụ c t p hơn s ợc thêm ẽ đưvào một cấu trúc hàng đ i trong bộợ qu n lý ngả ắ ểt đ đư c vòng lặợ p xử lý sau đó Lúc này, hệ thống g n giầ ống với kiểu nhân đa nhiệm v i các ti n trình r i r c ớ ế ờ ạ

Đa nhiệm tương tác

Một hệ thống đa nhi m không ưu tiên cũng gần giốệ ng v i k thu t vòng l p kiểm ớ ỹ ậ ặsoát đơn giản ngo i tr việạ ừ c vòng lặp này đượ ẩc n giấu thông qua một giao di n lập ệtrình API Các nhà lập trình đ nh nghĩa mị ột lo t các nhiạ ệm vụ, mỗi nhiệm vụ chạy trong một môi trư ng riêng c a nó Khi không cờ ủ ần th c hiự ện nhiệm vụ đó thì nó g i ọ

đến các ti n trình con t m nghế ạ ỉ (bằng cách g i “pause”, “wait”, “yeild” …) ọ

Ưu điểm và như c đi m c a lo i kiợ ể ủ ạ ến trúc này cũng giống v i ki m vòng l p ki m ớ ể ặ ểsoát đơn giản Tuy nhiên, việc thêm m t phộ ần mềm mới đư c th c hiợ ự ện dễ dàng hơn bằng cách lập trình m t tác vộ ụ ớ m i hoặc thêm vào hàng đ i thông dịợ ch (queue-interpreter)

Đa nhiệm ưu tiên

Ở lo i ki n trúc này, h th ng thư ng có m t đo n mã m c th p th c hi n vi c ạ ế ệ ố ờ ộ ạ ở ứ ấ ự ệ ệchuyển đổi giữa các tác vụ khác nhau thông qua một bộ đị nh thời Đoạn mã này thường n m m c mà hệ thốằ ở ứ ng đư c coi là có một hệ ềợ đi u hành và vì thế cũng g p ặ

phả ấ ải t t c ững phức tnh ạp trong việc quản lý đa nhiệm

Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải được tách bi t m t cách chính xác Vi c truy cệ ộ ệ ập tới các dữ liệu chia s có thẻ ể đư c quản ợ

lý bằng mộ ố ỹt s k thu t đ ng bộậ ồ hóa như hàng đ i thông điợ ệp (message queues), semaphores … Vì những phứ ạc t p nói trên nên m t giộ ải pháp thư ng đư c đưa ra ờ ợ

đó là sử ụ d ng m t hệ ềộ đi u hành th i gian thựờ c Lúc đó, các nhà lập trình có thể ậ t p

Trang 16

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 14

trung vào việc phát tri n các ch c năng c a thi t b ch không c n quan tâm đ n các ể ứ ủ ế ị ứ ầ ế

dịch vụ ủa hệ điều hành nữa c

Vi nhân (Microkernel) và nhân ngoại (Exokernel)

Khái niệm vi nhân (microkernel) là một bư c tiếp cận gầớ n hơn tới khái niệm hệ ề đi u hành thời gian thực Lúc này, nhân hệ ề đi u hành thực hiện việc cấp phát bộ nhớ và chuyển CPU cho các luồng thực thi Còn các tiến trình ngư i dùng sử ụờ d ng các

chức năng chính như h ống file,ệ th giao diện mạng lưới,… Nói chung, ki n trúc này ếthường đư c áp dụng trong các hệ thốợ ng mà vi c chuyển đổệ i và giao ti p giữa các ếtác v là nhanh.ụ

Còn nhân ngoại (exokernel) tiến hành giao ti p hiế ệu qu b ng cách s d ng các l i ả ằ ử ụ ờ

gọi chương trình con thông th ng Phần cứng và toàn bộ phần mềm trong hệ ốườ th ng luôn đáp ứng và có thể đư c m r ng b i các ng d ng ợ ở ộ ở ứ ụ

Nhân khối (monolithic kernels)

Trong kiến trúc này, một nhân đ y đ vầ ủ ới các khả năng phức tạp được chuyển đ i ổ

để phù h p v i môi trư ng nhúng Đi u này giúp các nhà l p trình có đư c m t môi ợ ớ ờ ề ậ ợ ộtrường gi ng v i hệố ớ điều hành trong các máy để bàn như Linux hay Microsoft Windows và vì thế ấ r t thuận lợi cho việc phát triển Tuy nhiên, nó lại đòi h i đáng ỏ

k ể các tài nguyên phần cứng làm tăng chi phí c a hệ thố g Một số loại nhân khối ủ nthông dụng là Embedded Linux và Windows CE M c dù chi phí ph n cặ ầ ứng tăng lên nhưng loạ ệ ối h th ng nhúng này đang tăng trưởng r t mấ ạnh, đặc bi t là trong các ệthiết bị nhúng m nh như Wireless router hoặc hệ ốạ th ng đ nh vị GPS Lý do của điều ịnày là:

• Hệ ố th ng này có cổng đ kể ết nố ếi đ n các chip nhúng thông dụng

• Hệ th ng cho phép sử ụố d ng lại các đo n mã sẵn có phổ biếạ n như các trình đi u ềkhiển thiế ịt b , Web Servers, Firewalls, …

• Việc phát triển hệ thống có thể được tiến hành với mộ ập nhiềt t u lo i đ c tính, ạ ặ

chức năng còn sau đó lúc phân ph i sản phẩm, hệ ống có thểố th đư c cấợ u hình đ ể

loại bỏ ộ m t số ứch c năng không c n thiết Điều này giúp tiết kiệầ m đư c những vùng ợnhớ mà các ch c năng đó chiếứ m gi ữ

Trang 17

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 15

• Hệ ố th ng có chế độ ngư i dùng đ d ờ ể ễdàng ch y các ạ ứng dụng và gỡ ố r i Nhờ đó, qui trình phát triển đư c thực hiện dễợ dàng hơn và việc lập trình có tính linh đ ng ộhơn

• Có nhiều hệ ố th ng nhúng thiếu các yêu c u chầ ặt chẽ ề v tính th i gian thờ ực của hệ thống quản lý Còn mộ ệ ốt h th ng như Embedded Linux có tốc đ nhanh đ tr ộ đủ ể ả

lời cho nhiều ứng dụng Các chức năng c n đ n sự phản ứầ ế ng nhanh cũng có thểđược đ t vào ph n cặ ầ ứng

1.4 Giới thiệu một số hệ nhúng

1.4.1 DSK C6713

DSK C6713 do hãng Spectrum Digital sản xuất Trong đó, b x ộ ử lý trung tâm là chíp xử lý tín hi u s DSP TMS320C6713, do hãng Texas Instruments chệ ố ế ạ t o Nó cho phép ngườ ử ụi s d ng có thể ự th c hi n và phát tri n các ng dụệ ể ứ ng th i gian th c ờ ự

với dòng DSP C67xx DSK C6713 hỗ trợ các thành phần phần cứng chuyên dụng cho việc x lý tín hiử ệu âm thanh như codec stereo TLV320AIC23 với các đư ng tín ờ

hiệu âm thanh Ngoài các thiết bị trên kit như b ộ nhớ SDRAM, b ộ nhớ FLASH, DSK C6713 còn có khả năng giao ti p v i nhi u thiế ớ ề ết bị khác như các h vi đi u ệ ềkhiển, các lo i bạ ộ nh , … Nhờ ảớ kh năng giao ti p phong phú như v y, ngưế ậ ời sử

dụng có thể phát triển những ứng dụng xử lý âm thanh thời gian thực ghép nối với nhiều mạch chức năng khác nhau Hai ng d ng xứ ụ ử lý âm thanh chủ ế y u là nhận

dạng và tổng hợp tiếng nói Hình ảnh của kit DSK C6713 và các khối chức năng được mô t qua hình 1.1 và hình 1.2 ả

Hình1.1 Kit xử lý tín hiệu sốC6713

Trang 18

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 16

Hình 1.2 Sơ đồ khối DSK C6713

DSK C6713 có những tính năng chính như sau:

• S dử ụng chip xử lý tín hiệu số ấu chấ d m đ ng TMS320C6713 hoạ ộộ t đ ng ở ầ t n

s ố 225MHz

• B ộ mã hoá / giải mã âm thanh đa kênh TLV320AIC23

• B ộ nhớ DRAM đồng bộ 16 MB

• B ộ nhớ Flash 512KB, trong đó 256KB được sử ụ d ng đ lưu cấu hình mặể c đ nhị

• Bốn đèn LED và công t c DIP cho phép tương tác v i ngư i sử ụngắ ớ ờ d

• Cấu hình hoạ ột đ ng bằng phần mềm thông qua các thanh ghi lưu trong CPLD

• Có thể ỳ tu ch n c u hình kh i đ ng b i các công t c c u hình ọ ấ ở ộ ở ắ ấ

• Các khe cắm đ giao ti p v i các thi t b m r ng ể ế ớ ế ị ở ộ

• Giả ậ l p chu n JTAG và giao ti p v i máy tính thông qua đư ng USB ẩ ế ớ ờ

• Nguồn c p 5V ấ

Trang 19

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 17

1.4.2 T-Engine

T-Engine SH7760 là một hệ vi xử lí tích hợp bộ điều khiển LCD, USB host và các chức năng ngoại vi khác SuperHRISC engine là một vi xử lí nền tảng 32bit RISC SH7760 có một CPU SH-4 mà tại mức độ đối tượng lệnh là hoàn toàn tương thích với các vi xử lí SH-1, SH 2 và SH- -3 Vi xử lí này có một bộ nhớ cache lệnh, một bộ nhớ cache toán hạng mà có thể chuyển đổi giữa các chế độ copy-back và write-through, bộ quản lí bộ nhớ với 64 phần tử liên kết đầy đủ được chia sẻ TLB(Translation Look aside Buffer) Kích thước của bộ nhớ cache lệnh và bộ nhớ cache toán hạng là 16 kbyte và 32 kbyte Vi mạch này cũng có tính năng bộ điều khiển trạng thái bus (Bus State Controller – BSC) mà có thể lên kết với SDRAM Và bởi

vì nó có các chức năng on chip như bộ điều khiển LCD, một USB host, các - bộ định giờ và các chức năng truyền tin nối tiếp yêu cầu cho các phương tiện multimedia và

OA nên vi mạch này cho phép giảm thiểu rất lớn giá thành trong hệ thống

Mạch: 256-pin BGA

Flash memory Dung lượng: 8MB

MBM29DL640E90TN (Fujitsu) x 1 SDRAM Dung lượng: 64MB

Trang 20

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 18

EDS2516APTA-75 (ELPIDA) x 2

PC Card I/F

Một khe Controller: MR-SHPC 01 V2T (Marubun) -Mạch: 144pin TQFP

Serial I/F Controller gồm 2 kênh: ST16C2550CQ48 (EXAR)

Package: 48pin TQFP Sound Tên model: UDA1342TS (Philips) Mạch: 28pin SSOP

Earphone/microphone:

- Một đầu ra tai nghe

- Một đầu vào micro

Bộ điều khiển nguồn

cung cấp

H8/3048F-ONE Tên model: HD64F3048BVTE25 (Renesas

Trang 21

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 19

Technology) Tần số hoạt động: 7.3728MHz Mạch: 100-pin TQFP

Trang 22

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 20

Hình 1.4 Sơ đồ khối kit T-Engine SH7760

Hai hệ nhúng DSK C6713 và T-Engine được giới thiệu ở trên là nh ng hệ nhúng có ữcấu hình hoàn toàn phù hợp với các ứng dụng xử lý tiếng nói nói chung và nhận

dạng tiếng nói nói riêng Chúng đ u là các bộ ử lý mạnh, hỗ trợ các lệnh xử lý tín ề x hiệu s Trên bo mố ạch tích h p codec giao tiợ ếp với tín hiệu âm thanh hỗ ợ ầ tr t n số

lấy mẫu cao Tuy nhiên chúng đều là các hệ nhúng được sản xuất ở nước ngoài , theo những quy trình công nghệ hiện đ i Việc xây dựng và lắạ p đ t từ đầặ u những hệ nhúng như vậy ở Vi t Nam tương đệ ối khó khăn Khó khăn lớn nhất chính là vi c ệtìm mua các linh kiện, các mạch tích hợp cần thiế ểt đ xây d ng hệ nự húng

Do vậy, với mục đích c a đ tài là thi t kủ ề ế ế ệ h nhúng nh n dạng tiếng Việậ t, tác giả

đã chọn dòng vi điều khi n dsPIC cể ủa hãng Microchip đ tiể ến hành thiế ết k và cài

đặ ệt h nhúng có kh năng nhận dạng từ ếả ti ng Vi t r i r c v i s lư ng từ ựệ ờ ạ ớ ố ợ v ng h n ạ

chế

Trang 23

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 21

PHẦN II TÌM HIỂU DSPIC30F6014A VÀ CODEC SI3000

2.1 Vi điều khiển dsPIC30F6014A

2.1.1 Giới thiệu chung

dsPIC30F6014A là loại vi điều khiển tín hiệu số ạ m nh nhất của dòng dsPIC30F với những tính năng chung như sau:

Thuộc h vi đi u khiọ ề ển tín hiệu số 16 bit c a hãng Microchip ủ

• Độ dài bus d li u 16 bit ữ ệ

• Độ dài bus đi u khi n 24 bit ề ể

• Không gian bộ nh chương trình đ n 4M t l nh ớ ế ừ ệ

• Không gian bộ nh d li u đ n 64Kbytes ớ ữ ệ ế

• Tập lệnh với 84 lệnh

• 16 thanh ghi đa chức năng 16 bit

• 2 thanh ghi tích lũy 40 bit

• Chế độ đị nh đ a ch linh ho t ị ỉ ạ

• Thực hi n các l nh dsp trong một chu kỳ ệ ệ

B ộ nhớ:

• Flash Program Memory 144 Kbytes

• Data EEPROM 4 Kbytes

• Data SRAM 8 Kbytes

Hình 2.1 mô tả sơ đồ chân của vi điều khiển dsPIC30F6014A

Trang 24

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 22

Hình 2.1 Sơ đồ các chân c a dsPIC30F6014A- 30I/PF

2.1.2 Nhân vi điều khiển dsPIC30F6014A

Nhân vi điều khiển dsPIC30F6014A cũng như dòng dsPIC30F nói chung có tập lệnh 24 bit Thanh ghi bộ đế m chương trình PC đ r ng 23 bit vớộ ộ i bit LSB (bit th p ấnhất) luôn tr ng và bit MSB (bit cao nh t) bố ấ ị ừ t chối truy nhập trong suốt quá trình thực hi n các lệ ệnh thông thư ng Vì vậy thanh ghi PC có khảờ năng đánh đ a chỉ cho ị4Mb từ ệ l nh trong không gian bộ nhớ Một cơ ch ế tìm nạ ệp l nh (pre-fetch) được sử

dụng đ đảm bảo sự thông suốt quá trình truy cập thanh ghi PC Việc xây dựng ểvòng lặp và thoát khỏi vòng lặp đư c hợ ỗ trợ ằ b ng cách sử ụ d ng các câu lệnh DO và REPEAT, cả hai l nh này đ u có thể ịệ ề b ngắt trong b t c th i đi m nào ấ ứ ờ ể

Trang 25

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 23

Các thanh ghi làm vi c bao g m các thanh ghi 16x16 bit, m i thanh ghi có thệ ồ ỗ ể đóng vai trò thanh ghi dữ liệu, thanh ghi địa chỉ hay thanh ghi offset Thanh ghi W15 hoạt động như một con tr ngăn x p ph c v cho các ng t và các l i g i CALL ỏ ế ụ ụ ắ ờ ọ

Không gian dữ liệu với kích thước 64 bytes (32 từ nhớ) đư c chia làm hai kh i X và ợ ố

Y Mỗi khố ử ụi s d ng một đơn v nh riêng (AGU-ị ớ Address Generation Unit) Khối nhân - tích lũy của DSP hoạ ột đ ng trên cả AGU của bộ ớnh X và b ớ Y, chia ộ nhkhông gian địa ch làm hai ph n ỉ ầ

Với hầu hết các lệnh, dòng dsPIC30F có thể ự th c hiện các thao tác đ c dữ liệu từ ộọ b nhớ (ho c dữ liặ ệu chương trình), dọc dữ ệu các thanh ghi làm vi c, ghi dli ệ ữ ệu lên li

b ộ nhớ hoặc ghi lệnh lên không gian chương trình trong một chu kỳ làm việc Do

đó, kể ả c các l nh có 3 toán hệ ạng cũng có th đư c hỗ trợể ợ , nó cho phép thực hiện phép cộng A + B = C trong một chu kỳ làm vi c ệ

B ộ máy DSP hoạ ột đ ng nhanh, bao gồm bộ nhân 17x17 bit, bộ ALU 40 bit, hai b ộ

tích lũy bão hòa 40 bit, và một bộ ịch hai chiều 40 bit Bộ ịch này có thể d d th c ựhiện phép dịch m t giá trộ ị 40 bit sang trái 16 bit hoặc sang phải 16 bit trong m t chu ộ

kỳ Các lệnh DSP hoạ ột đ ng không giống như các l nh thông thư ng khác và đư c ệ ờ ợthiết kế để ố t i ưu hóa hi u năng v ời gian thệ ề th ực Lệnh MAC và các l nh khác có ệthể ấ l y đ ng thời hai toán hạng từ ộồ b nhớ trong khi vẫn th c hiự ện phép nhân hai thanh ghi làm việc Việc này đòi hỏi không gian dữ ệ li u đư c chia làm đôi v i các ợ ớlệnh này và tuy n tính ế đố ới v i các l nh khác ệ

H ỗ trợ phép toán chia

dsPIC30F nổi bật ở phép toán chia 16/16 bit có dấu cũng như phép chia s nguyên ố32/16 bit, 16/16 bit có dấu Các câu l nh sau đây đượệ c h tr : ỗ ợ

• DIVF - 16/16 signed factional

• DIV.sd - 32/16 signed divide

• DIV.ud – 32/16 unsigned divide

• DIV.sw – 16/16 signed divide

• DIV.uw -16/16 unsigned divide

Câu lệnh chia được th c hiự ện bởi một vòng lặp REPEAT

Trang 26

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 24

B ộ nhân

B ộ nhân 17x17 bit có khả năng tính toán s có d u hoặc không dấu và có thể đa ố ấkênh hóa đầu ra b ng cách s d ng các Scaler đ h tr c d ng ằ ử ụ ể ỗ ợ ả ạ dấu chấm tĩnh1.13(Q31) và số nguyên 32 bit Nh ng toán hữ ạng không dấu và có dấu đư c đưa v ợ ề

dạng chuẩn đ u vào 17 bit Đầu ra của bộ nhân là giá trị ố 33 bit được mở ộng có ầ s r

dấu về ạng chuẩn 40 bit d

Khi bộ nhân được thi t lế ập là phân số ữ h u tỷ ữ liệ, d u đư c địợ nh nghĩa như là ph n ầ

bù 2, trong đó MSB là bit điểm ngăn cách cơ s (radix point) đư c m c đ nh là nằm ố ợ ặ ịngay sau bit dấu D i giá tr c a một sả ị ủ ố nh phân bù 2ị N bit là từ -2N-1 tới 2N-1

2.2 Module DCI (Data Converter Interface)

2.2.1 Giới thiệu chung về module DCI

Module DCI của dsPIC30F cho phép giao tiếp đơn gi n v i ả ớ các thiết bị, cũng như audio coder/decoders (Codecs), các bộ chuy n để ổi A/D và D/A Các giao diện dư i ớđây được ch p nhận: ấ

 B ộ truyền nối tiếp đ ng bộ khung (đơn hoặc đa kênh)ồ

 Giao diện âm thanh I2S

 Chế độ AC ink-L

Module DCI có các đ c điặ ểm sau:

 Có thể ậ l p trình được

 Chấp nh n 16 time slot, cho khung c c đ i là 256bit ậ ự ạ

 B ộ đệm dữ liệu cho 4 mẫu không CPU hoặc erhead

Các chân vào/ra của module DCI

Có 4 chân I/O liên quan đ n module Khi đư c cho phép, module điế ợ ều khiển chiều

d ữ liệu của mỗi chân

 Chân CSCK

Chân này cung cấp tín hiệ đồng hồ ốu n i tiếp cho DCI Chân này có thể đư c đ nh ợ ịnghĩa như đầu vào hoặc đ u ra s dầ ử ụng bit điều khiển CSCKD trong thanh ghi DCICON1 Khi được c u hình thành đ u ra, tín hi u ng h n i ti p đư c cung ấ ầ ệ đồ ồ ố ế ợ

Trang 27

 Chân CSDI

Chân đầu vào dữ ệ li u nối ti p (CSDI) chế ỉ được cấu hình làm đ u vào khi module ầđược cho phép

 Chân COFS (Codec frame synchronization)

Được s d ng đ ng b truy n d li u xu t hi n trên các chân CSDO và CSDI ử ụ ể đồ ộ ề ữ ệ ấ ệChân COFS có thể đư c cấu hình là đầu vào hoặợ c đ u ra Chi u d li u cho chân ầ ề ữ ệnày được xác đ nh bởi bit điềị u khi n COFSD trong thanh ghi DCICON1 ể

Module DCI truy cập thanh ghi ẩn khi CPU đang trong quá trình truy cập bộ nh ớánh xạ vào thanh ghi đ m ệ

Thanh ghi dịch truyền/nhận

DCI có thanh ghi d ch 16 bị it cho việc d ch dị ữ liệu vào và ra Dữ liệu được d ch tị ừ

bit cao MS đầu tiên, bởi vì dữ liệB u PCM audio đư c truyề dưới hình thức số bù 2 ợ n

có dấu

Điều khi n b m ể ộ đệ

DCI chứa một đơn v đi u khiị ề ển bộ đệm cho việc truyền dữ liệu giữa bộ nh m ớ đệshadow và thanh ghi dịch n i tiố ếp Đơn v điị ều khi n bể ộ đệ m là m t bộ ộ đế đị m a chỉ 2-bit đơn giản mà trỏ ới vị trị ừ trong bộ nhớ đệm shadow Với không gian bộ nhớ t t nhận (ph n đ a ch cao c a bầ ị ỉ ủ ộ nh ớ đệm DCI), bộ đế m địa chỉ ở ị v trí MSB bằng 0

để có hình th c m t đ a ch 3-bit V i không gian b nh truy n (ph n trên c a b ứ ộ ị ỉ ớ ộ ớ ề ầ ủ ộ

nhớ đệ m DCI), b ớ địộ nh a ch có Mỉ SB bằng 1

Trang 28

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 26

Đơn v đi u khi n DCI luôn truy xuất cùng một vị ề ể ị trí tương đ i ở ả ộ đệố c b m truyền

và nhận, vì thế chỉ ộ m t bộ đế m địa chỉ được nạp

Sơ đồ kh i củố a module DCI được chỉ ra trên hình 2.2

Hình 2 2 Sơ đồ kh i module DCI

2.2.2 Hoạt động của khối DCI

Để ề đi u khi n ho t ng c a kh i DCI ta s s d ng 6 thanh ghi 16 bit sau : ể ạ độ ủ ố ẽ ử ụ

Trang 29

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 27

Trang 30

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 28

 Bit cho phép hoạ ộ t đ ng

Bằng việc sử ụ d ng bit đi u khiển DCIEN trong thanh ghi DCICON1 DCIEN=1, ềcho phép, và ngượ ạc l i Clock c a DCI đư c t t khi ủ ợ ắ DCIEN=0

Khi được phép ho t đ ng, DCI đi u khiạ ộ ề ển hướng d li u cho 4 chân I/O ở trên Giá ữ ệtrị thanh ghi Port, LAT và TRIS cho các chân I/O đư c ghi đè bợ ởi kh i DCI khi ốDCIEN=1

Cũng có thể ghi đè chân CSCK khi b ộphát clock bit được phép Đi u này cho phép ề

b ộ phát clock b t hoạ ội t đ ng mà không cho phép DCI nghỉ

 Các bit lựa ch n c t ọ ỡ ừ

Các b t li ựa chọn cỡ ừ t WS<3:0> trong thanh ghi DCICON2 xác định s bit trong ố

mỗi từ ữ liệu DCI Giá trị 15 tương ứ d 0- ng v i d li u 1 t i 16 bi ớ ữ ệ ớ t

 B ộ truyề n đ ng bộ khung ồ

B ộ truyền đ ng bộ khung (COFSG) là một bộ đếm 4 b t thiết lậồ i p đ dài khung trong ộcác từ ữ d liệu Bộ truyền đ ng bộồ khung tăng mỗi lần bộ đế m cỡ ừ t đư c Reset ợThời gian cho bộ truy n đ ng bộề ồ khung đư c thi t lợ ế ập b ng viằ ệc vi t t i các bế ớ it điều khiển COFSG <3:0> trong thanh ghi DCICON2 Thời gian COFSG trong các chu

k ỳ đồng hồ được xác đ nh bằng công thức sau: ị

Thời gian COFSG:

Frame Length = Word Length * (FSG value + 1)

Trang 31

Hoạ ột đ ng các bit điều khiển COFSM phụ thuộc vào khối DCI truyền tín hiệu đ ng ồ

b khộ ung như một thiết bị master, hay nhận tín hiệu đ ng bộ khung như một thiết bịồslave

Thiết b master trongị mộ ặt c p DSP/Codec là thi t bế ị truyền tín hiệu đồng bộ khung Tín hiệu đ ng bộ khung bắồ t đầu việc truyền dữ liệu trên chân CSDI và CSDO và thường có cùng tần s v i t c đ l y mẫố ớ ố ộ ấ u d li u (COFS) ữ ệ

Khối DCI là một master đ ng b khung nồ ộ ếu bit điều khiển COFSD=0 và là slave khi COFSD=1

 Hoạ ộ t đ ng đ ng b ồ ộkhung master

Khi khối DCI hoạ ột đ ng như một thi t bế ị đồng bộ khung (COFSD=0), các bit ch ế

độ COFSM xác đ nh lo i xung đ ng b khung đư c truy n ị ạ ồ ộ ợ ề

Một tín hiệu COFS mới đư c truyền khi bộ truyềợ n đ ng bộ khung reset về 0.ồ

Trong chế độ đa kênh, các xung đồng b khung đư c đưa lên m c cao trong th i ộ ợ ứ ờgian CSCK để kh i t o vi c truy n d li u S các chu k CSCK gi a các xung ở ạ ệ ề ữ ệ ố ỳ ữ

đồng b khung s ph thu c vào c t ộ ẽ ụ ộ ỡ ừ và các bit đi u khi n vi c truy n đ ng b ề ể ệ ề ồ ộkhung

Trang 32

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 30

Hình 2.3 Khung đồng bộ ờ th i gian, ch đa kênh ế độ

Trong chế độ AC link, tín hi u đ ng bộ- ệ ồ khung có m t thời gian và chu kỳ nhiệm vụ ộ

c ố định Tín hiệu đ ng bộ khung AC link ởồ - mức cao trong 16 chu kỳ CSCK và ởmức thấp trong 240 chu kỳ ế ti p theo

Hình 2.4 Khung đồng bộ ờ th i gian, AC-link Start của khung

Trong chế độ I2S, một tín hiêu đ ng bồ ộ khung có một chu kỳ nhi m vụ ệ 50% Thời gian c a tín hiủ ệu đ ng b khung Iồ ộ 2S được xác đ nh bở ỡ ừị i c t và các bit đi u khi n ề ểviệc truyền đ ng bồ ộ khung Vi c truyềệ n dữ ệ li u I2S mới đư c đánh dợ ấu bởi một sườ ừn t cao xu ng th p hoặ ừ ấ ớố ấ c t th p t i cao phát trên chân COFS

Hình 2.5 Khung giao diện I2S đồ ng b thời gian ộ

Trang 33

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 31

 Hoạ ộ t đ ng đ ng b khung Slave ồ ộ

Khi khối DCI đang ho t đ ng như m t slave đ ng bộ khung (COFSD=1), việc ạ ộ ộ ồtruyền dữ ệ li u đư c điều khiển bởi thi t b Codec nợ ế ị ối với khối DCI Các bit điều khiển COFSM điều khi n khốể i DCI đáp ng COFS ứ

Trong chế độ đa kênh, vi c truyền khung dữ ệệ li u mới bắ ầt đ u một chu kỳ CSCK sau khi chân COFSM đư c đưa lên mợ ức cao

Trong chế độ I2S, m t tộ ừ ữ d liệu mớ ẽ ắi s b t đ u mầ ột chu kỳ CSCK sau khi một xung từ th p lên cao, ho c tấ ặ ừ cao xuống thấp phát trên chân COFS Một sư n lên ờhoặc sư n xuờ ống trên chân COFS reset b truy n độ ề ồng bộ khung

 B ộ phát đồng hồ bit

Khối DCI có một cơ s thời gian 12 ố bit Tốc đ clock bit được thiết lậộ p bằng việc viết m t giá tr khác 0 t i 12 ộ ị ớ bit điều khiển BCG<11:0> trong thanh ghi DCICON3 Khi các bit BCG<11:0> =0, clock bit là không được phép Nếu BCG khác 0, bộ phát clock bit được phép Các bit này nên được thi t lế ập là 0 và bit CSCKD được thiết lập 1 nếu clock nối tiếp cho DCI được nhlà ận từ ộ m t thi t bế ị bên ngoài

Công thức cho tần số clock bit được cho b i phương trình: ở

1) (BCG

*

2 CY

F BCK

d ữ liệu và giao thức liên lạc đư c sử ụng.ợ d

Để đạ t đư c t n s ợ ầ ố clock bit tương ứng vớ ối t c đ l y mộ ấ ẫu audio, người dùng cần

phải l a chự ọn mộ ần số dao động thạch a t t nh có giá trị nhị phân ch n Ví dụ ảẵ b ng 2.1 chỉ ra các giá tr tị ần số ứ ng v i t n s dao đ ng th ch anh như sau ớ ầ ố ộ ạ

FS (kHz) FCSCK/FS FCSCK (MHz) FOSC (MHz) PLL FCY (MIPS) BCG

Trang 34

Bảng 2.1 ần số clock tương ứng với tố T c đ ấ ộ l y m u

 Bit điề u khi n sư n clock m u ể ờ ẫ

Bit điều khiển sư n clock mẫu (CSCKE) xác địờ nh sư n lấy m u vờ ẫ ới tín hiệu CSCK Nếu CSCKE=0 (ngầm đ nh), dữ liệị u sẽ đư c lấy mẫu ởợ sư n xuốờ ng của tín hiệu CSCK Giao thức AC-link và đa kênh yêu cầu dữ liệu được lấy mẫu ở sư n xuống ờ

của tín hiệu CSCK Nếu bit CSCKE=1, dữ liệu sẽ được lấy mẫu ở sườn lên của CSCK Giao th c Iứ 2S yêu c u dầ ữ ệ li u đư c l y mẫ ởợ ấ u sư n lên c a tín hi u CSCK ờ ủ ệ

 Bit điề u khi n căn l d li u ể ề ữ ệ

Ngầm đ nh việc truyền dữ liệu bắt đầu với một chu k CSCK sau tín hiị ỳ ệu COFS

Một sự căn lề ữ liệu khác có thể được lựa chọn bằng việc thiết lập bit điều khiển d DJST trong thanh ghi DCICON1 Khi DJST=1, việc truyền dữ ệ li u sẽ ắ ầ b t đ u trong cùng một chu kỳ CSCK khi tín hi u COFS kích thích việ ấệ c l y m u ẫ

 Các bit cho phép slot truyền

Thanh ghi TSCON có các bit điều khiển được sử ụ d ng đ ểcho phép 16 khe thời gian cho việc truy n Các ề bit điều khiển này là TSE<15:0> Cỡ ủ c a khe thời gian (đ dài ộbit) xác định bởi WS<3:0>, WS bằng 0 tới 15 tương ng đ ứ ộdài bit ới 16 bit từ1 tKhi TSEx=1, nội dung của v trí bị ộ đệm shadow hiện tại đư c tảợ i vào thanh ghi

dịch CSDO và đơn v điều khiển bộ đệị m DCI đư c tăng đ tr t i v trí ti p theo ợ ể ỏ ớ ị ếKhi không dùng ít nhất m t khe th i gian thì chân CSDO đ t bộ ờ ặ ằng 0

Trang 35

Mỗi từ ữ liệu truyề d n đư c viết dồn trái tới bộ đệm truyền 16 bit Nếu cỡ ữ liệu ợ d

nhỏ hơn 16 tbi, các LSB của bộ truyền không ảnh hưởng tới dữ liệu truyền, không được truy n đi Vi t 0 t i các bit này ề ế ớ

 Các bit cho phép khe thời gian khi nh n

Tương t như khi truyự ền: Trong thanh ghi RSCON ch a RSE<15:0> cho phép sứ ử

dụng khe thời gian ở ị trí từ 1 tới 16 Cỡ bit ủa khe thời gian nhậ v c n xác đ nh bởi ịWS<3:0>

RSEx=1, nội dung thanh ghi d ch đư c vi t t i v trí b m nh n shadow DCI và ị ợ ế ớ ị ộ đệ ậđơn v điị ều khiển bộ đệ m tăng lên tr t i v trí b m tiếỏ ớ ị ộ đệ p theo

 Hoạ t đ ng c a các bit cho phép sử d ộ ủ ụng khe thời gian với việ c đ ng bộ ồ

khung

TSE và RSE cũng liên quan tới truy n tín hiề ệu đồng b ộ khung

Ở ch Master, m t tín hi u COFS đư c phát khi Reset b t o đ ng b ế độ ộ ệ ợ ộ ạ ồ ộkhung

Ở ch Slave, b t o đ ng b khung Reset khi nh n đư c m t xung COFS ế độ ộ ạ ồ ộ ậ ợ ộ

Các bit TSE và RSE cho phép sử ụng 16 khe thời gian Khi khe thời gian cuối dcùng trong khung được truy n/nh n, DCI s d ng vi c vi t vào b m d li u cho ề ậ ẽ ừ ệ ế ộ đệ ữ ệtới khi có xung COFS ti p theo.ế

Trang 36

nhận khi có slot 0 nhưng được truyền khi có slot 0 và slot 1 Trong trường hợp này,

b ộ đếm đi u khiển bộ đệề m tăng hai l n nhưng chầ ỉ một thanh ghi nhận đư c lấợ p đ y ầ

d ữ liệu

 Điều khi n chi u dài bể ề ộ đệ m

BLEN<1:0> trong thanh ghi DCICON2, cỡ b ộ đệm trong khoảng từ 1 t i 4 ớ

BLEN được so sánh với giá tr b m đ a ch c a đ m DCI khi bằng bộ đếị ộ đế ị ỉ ủ ệ m đ a ịchỉ ộ đệ b m DCI được reset về 0

 Căn lề ộ đệ b m khung d li u ữ ệ

D ữ liệu đư c truyền/nhận trong từng khe thờợ i gian đư c x p l n lư t t /t i các ợ ế ầ ợ ừ ớthanh ghi c a bủ ộ đệ m từ ắ ầ b t đ u từ TXBUF0

 Các bit trạng thái truy n

Có hai bit tr ạng thái truy n troề ng thanh ghi thanh ghi DCISTAT

o TMPTY=1 khi n i dung trong bộ ộ đệm truyền tới shadow của nó TMPTY tự động xoá khi viế ớ ộ đệt t i b m truy n ề

o TUNF là bit chỉ đọc đ truyền hiện sự thiếu dữ liệu trong thanh ghi bộ ể

đệm truy n, khi đó TUNF=1, TUNF tự độề ng xoá khi ghi đủ ữ ệ d li u vào bộ đệ m truy n ề

 Các bit trạng thái nh n

Có hai bit tr ạng thái nh n trong thanh ghi DCISTATậ

• Bit trạng thái RFUL chỉ đọc, có giá trị ằng 1 để xác định dữ liệu mới đã bsẵn sàng trong bộ đệ m RFUL tự động xoá khi CPU đ c dữ liệọ u từ ộ b đệm

Trang 37

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 35

• Bit trạng thái ROV chỉ đọc, ác định sự tràn dữ liệu nhận khi bộ đệm xkhông sẵn sàng đ nhậể n dữ ệ li u mới từ shadow ROV được xoá khi CPU

đọc d li u t thanh ghi b m x y ra tràn ữ ệ ừ ộ đệ ả

 Các bit trạng thái slot

Bit tr ạng thái SLOT<3:0> trong thanh ghi DCISTAT xác nh slot hi n t đị ệ ại Các bit này tương ứng với giá tr b m truy n tín hiị ộ đế ề ệu đồng bộ khung

S dử ụng trong lập trình khi xảy ra ngắt DCI ta có thể xác định đư c dữ liệu slot cuối ợcùng nhận đư c và d liệu slot nào được nợ ữ ạp tới các thanh ghi TXBUF

 Bit chế độ CSDO

Các bit CSDOM điều khiển chân CSDO khi các slot truyền không đượ ử ục s d ng CSDOM=0, ngầm đ nh, chân CSDOị =0 Chế độ này đư c sử ụợ d ng khi chỉ có hai thiết b trên bus.ị

CSDOM=1, CSDO là cổng ba tr ng thái Chạ ế độ này được sử ụ d ng cho ứng dụng

đa kênh, cho phép ở ộ m t th i đi m ch có m t thi t b truy n ờ ể ỉ ộ ế ị ề

 Chế độ Digital Loopback

Được cho phép bởi bit điều khi n DLOOP=1 trong thanh ghi DCISTAT Trong chể ế

độ này tín hi u CSDO n i t i CSDI, do đó đ u vào d li u trên chân CSDI s b b ệ ố ớ ầ ữ ệ ẽ ị ỏqua

 Bit điều khi n ch thi u d li u ể ế độ ế ữ ệ

Khi trạng thái thi u dế ữ ệ li u x y ra, có th x y ra 2 ho t đ ng sau ph thu c vào bit ả ể ả ạ ộ ụ ộUNFM trong thanh ghi DCICON1

• UNFM=0 (ngầm đ nh), m c 0 đư c đưa t i chân CSDO khi truy n d li u ị ứ ợ ớ ề ữ ệtrong slot Trong hoạ ột đ ng này, thiế ị Codec nố ới DCI sẽt b i t được cấp một tín hi u “câm”.ệ

• UNFM=1, dữ ệ li u cu i cùng s đư c vi t t i t i b m Trong hoạố ẽ ợ ế ớ ớ ộ đệ t đ ng ộnày, cho phép tiếp tục gửi dữ liệu tới thi t bế ị Codec

Trang 38

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 36

Ngắt DCI

Tần số ngắt DCI phụ thuộc vào giá trị BLEN<1:0> trong thanh ghi DCICON2

Một ngắt DCI xẩy ra khi bộ đệm nhận đ độ dài của nó và một sự trao đổi ở thanh ủ ghi shadow diễn ra Một trao đ i thanh ghi shadow đ nh nghĩa khi giá tr TXBUF ổ ị ịđược vi t trư c đó truy n tớế ớ ề i các thanh ghi shadow truy n hoặề c giá tr m i nh n ị ớ ậđược trong thanh ghi shadow nh n đư c truy n vào các thanh ghi RXBUF ậ ợ ề

Chế độ hoạt động của AC-link

Giao thức AC-Link là m t khộ ụng 256 bit với một slot 16 bit d ữ ệu, sau đó là 12 lislot 20 bit d ữ ệu Có hai chế độli hoạ ột đ ng trong giao thức AC-Link được l a chự ọn

bởi COFSM<1:0> trong thanh ghi DCICON1 Đầu tiên chế độ AC Link gọi chế độ - AC-link 16 bit ằng việc thiết lập COFM<1:0>=10 Tiếp theo ch b ế độ AC-Link gọi chế độ AC link 20 bit lựa chọn bằng việc thiết lập COFSM<1:0>=11 -

 Chế độ AC link 16 bit

-Trong chế độ AC Link 16 bit, chi u dài d- ề ữ ệ li u giới hạn là 16 bit Giớ ại h n này chỉ

ảnh hư ng t i các slot d li u 20- cở ớ ữ ệ bit ủa giao th c AC-Link V i các slot nh n ứ ớ ậ

được, d liữ ệu đưa tới đư c làm tròn thành 16 bit Vớợ i các slot truy n, 4 LSb củ ừề a t

d ữ liệu ằng 0 Sự làm tròn này dẫb n đ n việc phải dùng A/D và DAC 16 bit nhưng ếcho phép căn lề ữ ệ d li u trong TXBUF và RXBUF Mỗi thanh ghi RXBUF và TXBUF sẽ ch a m t slot d li u ứ ộ ữ ệ

Trang 39

Thiế ế ệt k h nhúng nhận d ng tiạ ếng Vi t nóiệ - - 37

Chế độ 20 bit xem m i khung AC-ỗ Link 256 bit như 16 slot 16 bit Trong chế độ AC-Link 20 bit, khối DCI hoạ ột đ ng nếu COFSG<3:0>=1111 và WS<3:0>=1111 Việc căn l cho các slot d li u 20-bit ề ữ ệ được bỏ qua

2.3 Codec Si3000

2.3.1 Sơ đồ chân

Hình 2.6 chỉ ra sơ đ chân c a codec Si3000 ồ ủ

Hình 2.6 Sơ đồ ấ c u tạo chân Si3000

Chức năng cụ ể th các chân c a codec Si3000 đư c mô t trong b ng 2.2 ủ ợ ả ả

1 SPKRR Đầu ra Speaker phải, có khả năng điều khiển tải 60Ω

2 MBIAS Điện áp phân cực, s d ng vớử ụ i Microphone c n điầ ện áp phân cực

3 HDST Đầu vào andseth

4 SDI Đầu vào dữ liệu truyền tin nối tiếp

5 SDO Đầu ra dữ liệu truyền tin nối tiếp

6 FSYNC Tín hiệu đồng bộ khung xác đ nh bắ ầị t đ u, k t thúc dế ữ liệu truyền

tin

Trang 40

11 LINEI Đầu vào LINE IN

12 VD Đầu vào Nguồn đi n áp ố, 3.3 hoặ 5Vệ s V c

13 VA Đầu vào Nguồn đi n áp tương t , 3.3 hoặ 5Vệ ự V c

14 GND Tín hiệu đ t ấ

15 LINEO Đầu ra LINE OUT

16 SPKRL Đầu ra Speaker trái, có khả năng điều khi n tể ải 60Ω

Bảng 2.2 Chứ c năng các chân c a S 3000 ủ i

2.3.2 Đặc điểm của codec Si3000

Codec Si3000 có mộ ố đặt s c đi m chính như sau : ể

• Khoảng đ ng c a ADC (kh năng phân gi i khi tín hiệộ ủ ả ả u đã đư c khuy ch ợ ế

đại): 84dB (có th phân gi i tín hiệể ả u đã đư c khuy ch đ i 84 l n) ợ ế ạ ầ

• Khoảng đ ng c a DAC ộ ủ 84dB

• Tốc đ ấy mẫ 4 ÷ 12 kHzộ l u

• Tiền khu ch đ i Microphone ế ạ 30dB

• Khuếch đ i kh trình đ u vào -ạ ả ầ 36dB ÷ 12dB

Ngày đăng: 22/01/2024, 17:03