Không chỉ có ứng dụng trong giải trí với những bản tin hiển thị được phát kèm cùng với sóng FM mà các bản tin điều khiển của RDS cũng rất hữu ích trong giao thông vận tải, giúp các lái x
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của TS Nguyễn Xuân Quyền Các nội dung nghiên cứu, kết quả trong
đề tài này là trung thực và chưa từng được công bố dưới bất kì hình thức nào trước đây Ngoài ra trong đề tài có dùng một số sơ đồ khối của các tác giả khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình
Hà Nội, ngày 4 tháng 9 năm 2016
Tác giả luận văn
Nguyễn Tiến Thiện
Trang 2TÓM TẮT LUẬN VĂN
Công nghệ hệ thống dữ liệu vô tuyến RDS là một chuẩn giao thức truyền thông cho việc nhúng một lượng nhỏ thông tin trong truyền thanh FM Công nghệ này ra đời từ khá lâu nhưng những ứng dụng của nó trong truyền thanh vẫn rất lớn Không chỉ có ứng dụng trong giải trí với những bản tin hiển thị được phát kèm cùng với sóng FM mà các bản tin điều khiển của RDS cũng rất hữu ích trong giao thông vận tải, giúp các lái xe có được thông tin cần thiết
Trong khuôn khổ luận văn, em đã thiết kế và phát triển đề tài “Ứng dụng công nghệ hệ thống dữ liệu vô tuyến RDS trong truyền dẫn dữ liệu số qua hệ thống phát thanh FM tương tự ”
Cụ thể đồ án gồm 3 Chương:
Chương 1: TỔNG QUAN VỀ RDS (Radio Data System) VÀ ỨNG DỤNG TRONG HỆ THỐNG FM
Giới thiệu về hệ thống FM trên android và giao thức RDS
Chương 2: PHÂN TÍCH VÀ THIẾT KẾ RDS TRONG HỆ THỐNG THU FM TRÊN HỆ ĐIỀU HÀNH ANDROID
Đưa ra các phân tích hệ thống, các yêu cầu chức năng, xây dựng sơ đồ khối hệ thống
Chương 3: TRIỂN KHAI HỆ THỐNG RDS THỰC TẾ VÀ ĐÁNH GIÁ KẾT QUẢ
Đưa ra các yêu cầu thực thi hệ thống: các yêu câu về cơ sở hạ tầng, nền tảng và ngôn ngữ lập trình
Trang 3ABSTRACT
Radio Data System (RDS) is a communications protocol standard for embedding small amounts of digital information in conventional FM radio broadcasts RDS has had since a long time ago, however its application in the broadcasting system are still very large
It plays a very important role in entertainment with the display messages are transmitted, besides, the control messages of RDS is also very useful in
transportation, it helps drivers get the needed information
In the framework of the thesis, I’ve designed and developed my thesis
"Application of the Radio Data System RDS technology in transmitting digital data through analog FM broadcasting system "
The content of our project include:
Chapter 1: OVERVIEW OF RDS (RADIO DATA SYSTEM) AND IMPLEMENT IN FM SYSTEM
About FM on android and RDS protocol
Chapter 2: ANALYSIS AND DESIGN RDS IN FM BROADCASTING SYSTEM ON ANDROID OPERATING SYSTEM
Giving the system analysis, the functional requirements, building system block diagram
Chapter 3: DEPLOYING PRACTICAL RDS SYSTEM AND RESULTS EVALUATION
Giving the deploying system requirements: the requests for infrastructure, platforms and programming languages
Trang 4MỤC LỤC
LỜI CAM ĐOAN 1
TÓM TẮT LUẬN VĂN 2
ABSTRACT 3
BẢNG CÁC TỪ VIẾT TẮT 6
DANH MỤC HÌNH VẼ 7
LỜI NÓI ĐẦU 9
CHƯƠNG 1:TỔNG QUAN VỀ RDS VÀ ỨNG DỤNG TRONG HỆ THỐNG FM 10
1.1 GIỚI THIỆU CHƯƠNG 10
1.2 LÝ THUYẾT CHUNG VỀ ĐIỀU TẦN 10
1.2.1 Lý thuyết chung về điều chế tần số 10
1.2.2 Tín hiệu điều chế FM 11
1.2.3 Phổ của tín hiệu điều tần 13
1.3 TỔNG QUAN VỀ RDS (Radio Data System) 16
1.3.1 Khái niệm và lịch sử phát triển RDS 16
1.3.2 Cấu trúc dữ liệu của RDS 16
1.3.3 Nguyên lý hoạt động của RDS 21
1.4 ỨNG DỤNG TRONG HỆ THỐNG FM 21
1.5 KẾT LUẬN CHƯƠNG 22
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ RDS TRONG HỆ THỐNG THU FM TRÊN ANDROID 24
2.1 GIỚI THIỆU CHƯƠNG 24
2.2 SƠ ĐỒ TỔNG QUÁT CỦA HỆ THỐNG 24
2.2.1 Kiến trúc FM radio trong hệ điều hành Android 24
2.2.2 Cấu trúc và chức năng của các tầng 25
2.2.3 Cấu trúc của module RDS trong hệ thống 29
2.3 XÂY DỰNG SƠ ĐỒ HOẠT ĐỘNG CỦA RDS 30
2.3.1 Xây dựng biểu đồ hoạt động 30
Trang 52.4 MÔ HÌNH HOẠT ĐỘNG 33
2.4.1 Xây dựng biểu đồ tuần tự 33
2.4.2 Xây dựng biểu đồ máy trạng thái 37
2.5 KẾT LUẬN CHƯƠNG 37
CHƯƠNG 3: TRIỂN KHAI HỆ THỐNG THU RDS THỰC TẾ VÀ ĐÁNH GIÁ KẾT QUẢ 38
3.1 GIỚI THIỆU CHƯƠNG 38
3.2 LỰA CHỌN PHẦN MỀM VÀ NGÔN NGỮ LẬP TRÌNH 38
3.2.1 Nền tảng hệ điều hành Android 38
3.2.2 Ngôn ngữ lập trình 42
3.3 Kiến trúc hệ thống: 44
3.3.1 Sơ đồ tổng quan toàn hệ thống 44
3.3.2 Sơ đồ chức năng tương tác của phần mềm 46
3.4 Thiết kế chi tiết: 47
3.4.1 Mô hình giao tiếp của các tầng trong hệ thống FM 47
3.4.2 Lưu đồ giải thuật lấy thông tin RDS thông qua hệ thống FM 51
3.4.3 Phương thức và cơ chế truyền nhận bản tin RDS giữa các tầng 51
3.5 ĐÁNH GIÁ KẾT QUẢ 58
3.5.1 Kết quả thử nghiệm 58
KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 62
Các vấn đề đã làm được 62
Định hướng trong tương lai 62
TÀI LIỆU THAM KHẢO 63
Trang 6BẢNG CÁC TỪ VIẾT TẮT
FM: Frequency Modulation (Điều chế tần số)
VHF: Very High Frequency (Mức tần số rất cao)
NF: Network Follow (Luồng dữ liệu mạng)
RDS: Radio Data System (Hệ thống dữ liệu radio)
RBDS: Radio Broadcast Data System (Hệ thống dữ liệu phát thanh radio)
PS: Programme Service (Tên dịch vụ chương trình)
PI: Programne Identification code (Mã nhận dạng chương trình)
DI: Decoder Identification code (Mã nhận dạng chức năng)
PTY: Programme Type Code (Mã kiểu chương trình)
TP: Traffic Program Identification code (Mã nhận dạng chương trình phương tiện) TA: Traffic Anouncement code (Mã thông báo trạm)
M/S: Music-Speech switch code (Mã chuyển âm nhạc/ tiếng nói)
CRC: Cyclic redundancy check (Mã kiểm tra lỗi)
FM HCI: Frequency Modulation Host controller interface (Giao diện máy chủ điều
khiển)
EBU: European Broadcasting Union (Hiệp hội liên minh phát thanh Châu Âu) BPSK: Binary Phase Shift Keying (Điều chế pha nhị phân)
PLL: Phased-locked loop (Vòng khóa pha)
MSB: Most significant bit (Bit có trọng số lớn nhất)
VCO: Voltage controlled oscillator (Bộ tạo dao động điều khiển bằng điện áp) AFC: Automatic Frequency Control (Tự động điều chỉnh tần số sóng mang)
DSP: Digital signal processor (Bộ xử lý tín hiệu âm thanh tích hợp nhiều tính năng) ADC: Analog to digital converter (Bộ chuyển đổi tương tự ra số)
DAC: Digital to Analog converter (Bộ chuyển đổi số ra tương tự)
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Điều chế FM 11
Hình 1.2: Cấu trúc của một group trong RDS [1] 17
Hình 1.3: Định dạng của một group RDS [1] 18
Hìnn 1.4: Phổ tín hiệu FM và RDS [1] 20
Hình 2.1 Kiến trúc của hệ thống FM trong nền tảng hdh Android[6] 25
Hình 2.2 Giao tiếp giữa tầng App với tầng dưới 26
Hình 2.3 Các khối của tầng MiddleWare 27
Hình 2.4 Kiến trúc tổng quát của tầng HAL 28
Hình 2.5 Sơ đồ kiến trúc tổng quan của module RDS 29
Hình 2.6 Sơ đồ turn On/Off phần mềm 30
Hình 2.7 Sơ đồ quá trình tìm kiếm kênh 31
Hình 2.8 Sơ đồ Tune của hệ thống 32
Hình 2.9 Biểu đồ tự turn on phần mềm 33
Hình 2.10 Biểu đồ Turn off phần mềm 34
Hình 2.11 Sơ đồ tìm kiếm kênh 35
Hình 2.12 Sơ đồ dò kênh 36
Hình 2.13 Sơ đồ máy trạng thái [6] 37
Hình 3.1 Kiến trúc của hệ điều hành Android 40
Hình3.2 Cơ chế Proxy trong AIDL 43
Hình 3.3 ADIL trong ứng dụng RDS 43
Hình 3.4 Cơ chế hoạt động của JNI 44
Hình 3.5 Góc nhìn tổng quan toàn hệ thống 45
Hình 3.6 Biều đồ ca sử dụng của phần mềm 46
Hình 3.7 Mô hình giao tiếp của các module trong hệ thống[8] 47
Hình 3.8 Kết nối giữa tầng FM application và FM driver.[8] 48
Hình 3.9 Kiến trúc của FM V4L2 [8] 48
Hình 3.10 Kiến trúc của FM host [8] 49
Hình 3.11 FM HCI architecture [8] 50
Hình 3.12 Lưu đồ thuật toán bản tin hiển thị RDS 51
Hình 3.13 Cấu trúc khung dữ liệu [1] 51
Hình 3.14 Định dạng bản tin [1] 52
Hình 3.15 Cấu trúc trường PI [1] 52
Hình 3.16 Cấu trúc trường PS [1] 53
Hình 3.17 Cấu trúc trường radio text [1] 53
Hình 3.18 Sơ đồ cơ chế truyền nhận bản tin RDS 55
Hình 3.19 Luồng gửi nhận bản tin RDS ở tầng kernel 55
Hình 3.20 Luồng gửi nhận bản tin RDS tại tầng native Framework 56
Hình 3.21 Gửi nhận bản tin RDS tại tầng native app 56
Hình 3.22 Gửi nhận bản tin RDS tại tầng ứng dụng 57
Hình 3.23 Các bước cài đặt phần mềm 58
Hình 3.24 Khởi động adb command 58
Hình 3.25 Thông báo từ tầng kernel 59
Trang 8Hình 3.26 Giao diện chính của phần mềm 60
Hình 3.27 Quá trình tìm kiếm kênh 60
Hình 3.28 Giao diện hiển thông thông tin RDS 61
Hình 3.29 Giao diện danh sách kênh yêu thích 61
Trang 9LỜI NÓI ĐẦU
Ngày nay, phát thanh dùng sóng mang điều tần FM đóng vai trò quan trọng trong nhiều lĩnh vực từ đời sống văn hóa, xã hội đến các lĩnh vực khoa học kĩ thuật, giáo dục, quân sự Rất nhiều công nghệ ra đời nhằm cải tiến chất lượng của hệ thống phát thanh FM, một trong số đó là công nghệ hệ thống dữ liệu vô tuyến RDS Công nghệ RDS cho phép truyền dữ liệu số tốc độ thấp qua hệ thống FM truyền thông Cung cấp cho người dùng nhiều thông tin hữu ích về tên chương trình phát, nội dung đang phát, tên trạm phát, vv Việc tích hợp công nghệ RDS vào phát thanh FM hiện đã được triển khai ở nhiều nước trên thế giới Đặc biệt, việc thu sóng phát thanh FM hiện nay đã được tích hợp phố biến trên các thiết bị di động Do đó việc phát triển công nghệ RDS trên nền tảng hệ điều hành android là một ứng dụng tiềm năng và hữu ích
Trong thời gian vừa qua dưới sự hướng dẫn tận tình của thầy Nguyễn Xuân Quyền và sự nghiên cứu nghiêm túc, em đã hoàn thành luận văn “ Ứng dụng công nghệ hệ thống dữ liệu vô tuyến RDS trong truyền dẫn dữ liệu số qua hệ thống phát thanh FM tương tự " Ứng dụng cho phép người dùng nghe sóng FM và đọc được các thông tin hiển thị RDS trên các thiết bị di động
Với những nỗ lực nghiên cứu, luận văn đã đạt được một số kết quả nhất định Mặc dù vậy, do thời gian có hạn nên không thể tránh khỏi một số thiếu Vì vậy, học viên rất mong những ý kiến đóng góp của các thầy cô giáo và bạn bè
Em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Xuân Quyền tận tình hướng dẫn trong suốt quá trình thực hiện luận văn
Trang 10CHƯƠNG 1:TỔNG QUAN VỀ RDS VÀ ỨNG DỤNG TRONG
HỆ THỐNG FM
1.1 GIỚI THIỆU CHƯƠNG
Chuẩn RDS được giới thiệu lần đầu tiên để phục vụ cho việc xử lý tín hiệu cho
mã hóa RDS (ở các nước châu Âu), phiên bản RBDS (ở Bắc Mỹ) Hệ thống RDS được ứng dụng trong thu phát sóng FM ở dải tần 87.5 MHz tới 108.0 MHz để truyền tải thông tin cho cả chương trình stereo (đa âm) và mono (đơn âm) Chương một sẽ giới thiệu về các cơ sở lý thuyết và nguyên lý về sóng FM và giao thức RDS
1.2 LÝ THUYẾT CHUNG VỀ ĐIỀU TẦN
1.2.1 Lý thuyết chung về điều chế tần số
Điều chế tần số được áp dụng trong kỹ thuật vô tuyến điện và kỹ thuật xử lý tín hiệu Người ta truyền thông tin trên một sóng mang cao tần bằng cách thay đổi tần số sóng mang theo tín hiệu cần truyền, trong khi biên độ của sóng mang cao tần không thay đổi [1] Sóng mang thường có tần số cao hơn so với tần số của tín hiệu
mà nó truyền tải Sóng mang thường dùng để truyền các thông tin xuyên qua không gian như một sóng điện từ (ví dụ như liên lạc bằng sóng vô tuyến) hay cho phép vài sóng mang tần số khác nhau có thể chia sẻ chung một môi trường phát sóng vật lý bằng phương pháp ghép kênh phân chia theo tần số (ví dụ như trong trường hợp của
hệ thống truyền hình cáp)
FM (Frequency Modulation) là phương pháp điều chế biến đổi tần số của sóng mang cao tần theo biên độ của tín hiệu tin tức Việc truyền tín hiệu âm thanh qua hệ thống radio FM là phổ biến nhất Tuy nhiên, máy phát FM cũng có thể truyền dữ liệu số tốc độ thấp được gọi là hệ thống dữ liệu radio (Radio Data System - RDS) ở châu Âu và hệ thống radio dữ liệu (Radio Broadcast Data System - RBDS)
Từ năm 1940 khi bắt đầu phát hiện thấy ưu điểm chống can nhiễu của kỹ thuật điều tần, kỹ thuật mới này được được sử dụng mạnh mẽ Hiện nay kỹ thuật này được sử dụng rộng rãi trong phát thanh, hệ thống vô tuyến hai chiều, hệ thống ghi
Trang 11băng từ và hệ thống truyền dẫn video Trong hệ thống vô tuyến, điều tần với băng thông đủ lớn giúp ích lớn cho việc loại bỏ tạp âm trong khi truyền
1.2.2 Tín hiệu điều chế FM
Điều chế tần số được áp dụng trong kỹ thuật vô tuyến điện và kỹ thuật xử lý tín hiệu Người ta truyền thông tin trên một sóng mang cao tần bằng hai cách Thay đổi tần số sóng mang theo tín hiệu cần truyền khi biên độ của sóng mang cao tần không thay đổi, đó là kỹ thuật điều chế tần số Và điều chế biên độ của sóng mang theo tín hiệu cần truyền mà tần số sóng mang vẫn giữ nguyên Ngoài ra còn nhiều phương pháp điều chế khác, như điều chế pha, điều chế mạch xung, điều chế biên
mã, điều chế đơn biên [1]
Tín hiệu điều chế FM
Hình 1.1 Điều chế FM
Tín hiệu sóng mang cao tần chưa điều chế là đơn hài, xác định bởi:
(1.1) Trong đó:
là pha tức thời của dao động cao tần, xác định trạng thái tín hiệu
Trang 12tại thời điểm t
là tần số sóng mang
là pha ban đầu
Giữa tần số và pha có quan hệ:
(1.2)
(1.3)
là hệ số
Khi đó tín hiệu điều chế FM có dạng:
Độ dịch tần số (frequency deviation): là lượng mà tần số sóng mang sai lệch
so với tín hiệu sóng mang chưa được điều chế Đối với một hệ thống FM, độ dịch tần số cho phép cực đại là độ lệch tần số lớn nhất kể từ tần số trung tâm, nó là một đại lượng quan trọng và được xem như là tốc độ dịch hệ thống fd (rated system deviation) Khi fd được xác lập nó sẽ xác định biên độ của điều chế tần số Ở hầu hết mọi thời điểm, điện áp điều chế đều nhỏ hơn giá trị cực đại này và khi đó, độ lệch tần số là
Chỉ Số Điều Chế (modulation index) là độ lệch pha đỉnh của tín hiệu FM, ký hiệu là mf.
Trang 13Tỉ số độ lệch (deviation ratio): Khi một hệ thống FM được thiết kế, cần phải sử
dụng những giá trị cho phép tối đa cho cả độ lệch của sóng mang lẫn tần số tín hiệu
điều chế Do đó, chỉ số điều chế được biết như là độ lệch D:
Độ lệch của một hệ thống FM xác định là không đổi, trong khi đó chỉ số
điều chế thay đổi không ngừng cùng với sự thay đổi của điện áp và tần số tín hiệu
1.2.3 Phổ của tín hiệu điều tần
Tín hiệu điều chế và pha ban đầu sóng mang 0 = 0 Tín
hiệu FM có dạng như sau:
Trang 14Biên độ của chúng tỷ lệ với hàm Bessel bậc n:
Bảng 1.1 Các hệ số của hàm Bessel tương ứng với một số chỉ số điều chế mf
05 0.50 0.45 0.22 0.07 0.02 0.01 - - - - - - - - 3.0 −0
26 0.34 0.49 0.31 0.13 0.04 0.01 - - - - - - - -
Trang 154.0 −0.
40
−0
07 0.36 0.43 0.28 0.13 0.05 0.02 - - - - - - - 5.0 −0
18
−0
33 0.05 0.36 0.39 0.26 0.13 0.05 0.02 - - - - - - 5.5
Băng thông của tín hiệu điều chế FM
Về lý thuyết độ rộng băng thông cao tần tín hiệu FM vô cùng lớn, tuy nhiên thực
tế quy định giới hạn băng thông FM đến thành phần phổ biên
Băng thông này tính theo công thức: BFM 2(f fm) = 2(mf + 1)fm, với fm là tần số tín hiêu điều chế tần thấp băng gốc
Trang 161.3 TỔNG QUAN VỀ RDS (Radio Data System)
1.3.1 Khái niệm và lịch sử phát triển RDS
RDS (Radio Data System) là hệ thống truyền dữ liệu qua sóng radio Đây là một chuẩn giao thức truyền thông cho việc gửi thêm thông tin kỹ thuật số trên các
chương trình phát thanh qua sóng FM RDS chuẩn hóa một số loại thông tin được
truyền, bao gồm thời gian, mã trạm và thông tin chương trình Đài phát thanh có thể sử dụng RDS để gửi đi các bản tin quảng bá ngắn gọn cho người sử dụng hiển thị trên màn hình như thông tin thời tiết, giá cả, tình hình giao thông, thông tin quảng cáo Đặc biệt có thể phát thanh chia theo từng khu vực và nội dung phát thanh không bị ảnh hưởng Sóng FM sử dụng băng tần UHF (tần số từ 87.5 tới 108 Mhz) cho phép phủ sóng trong vòng bán kính từ 80 tới 160 km Trạm phát sóng FM
sử dụng phương pháp đa truy nhập theo tần số (FDMA) để chia sẻ băng tần UHF, một trạm phát FM có thể truyền một hoặc nhiều kênh [1]
RDS sử dụng dải tần trong khoảng 55 KHz tới 59 KHz với phương pháp điều chế theo pha tín hiệu (PSK), cho tốc độ truyền 1187.5 bps Nếu trừ đi các bit sử dụng để phát hiện, sửa lỗi và đồng bộ hóa thì tốc độ truyền thực tế khoảng 731 bps Giao thức RDS được phát triển bởi Hiệp hội liên minh phát thanh châu Âu (EBU)
và được công bố phiên bản đầu tiên vào năm 1984 Từ đó đã trở thành một tiêu chuẩn quốc tế được công nhận bởi tổ chức IEC(International Electrotechnical Commission)
1.3.2 Cấu trúc dữ liệu của RDS
Dữ liệu RDS được định dạng trong các group Có 16 group được chia làm hai loại A và B Mỗi group chứa 104 bit được chia thành 4 block 26 bit Mỗi block bao gồm 16 bit thông tin và 10 bit để sửa lỗi và đồng bộ (Hình.1)
Cấu trúc của một group
Mỗi Group bao gồm bốn Block chứa những thông tin sau (Hình 1.2)
Block 1 của mỗi group chứa mã PI (Program Identification)
Block 2 chứa những thông tin sau:
Trang 17Hình 1.2: Cấu trúc của một group trong RDS [1]
Group type code dùng để phân biệt ứng dụng của group Bao gồm 4 bit A0, A1, A2, A3 Mỗi loại ứng dụng có hai version A và B, version được xác định bằng bit B0 trong Block 2 B0 = 0: PI code chỉ chứa trong Block 1 (version A) B0=1: PI code được chứa trong block 1 và 3 của tất cả các group (version B)
Traffic program (TP): 1 bit
Program type code (PTY): 5 bit
5 bit cho những thông tin riêng biệt
Mã phát hiện, sửa lỗi và đồng bộ: 10 bit cuối của mỗi block được sử dụng cho
để sửa lỗi và đồng bộ Đồng bộ hóa hoạt động bằng cách sử dụng các dữ liệu được xác định trước Phát hiện lỗi hoạt động bằng cách sử dụng thuật toán phát hiện tất
cả 1 hoặc 2 bit lỗi trong một block và phát hiện tất cả các lỗi trong khoảng dưới 11 bit [1]
Block 3 và 4 chứa những dữ liệu cụ thể
Thứ tự truyền của các bit
Tất cả các thông tin của words và checkwords có các bit quan trọng nhất (MSB) được truyền đầu tiên Do đó các bit cuối cùng truyền đi trong một số nhị phân hoặc địa chỉ có trọng lượng 20 Dữ liệu truyền là hoàn toàn đồng bộ và không
có khoảng trống giữa các nhóm hoặc các khối Từ thông tin và sử dụng của họ được
giải thích trong hình (Hình 1.2) định dạng tin nhắn
Trang 18Hình 1.3: Định dạng của một group RDS [1]
Các thông tin hiển thị RDS [1]
Program service name (PS): Tên chương trình chứa tối đa 8 ký tự Nó có
thể được sử dụng để thông báo cho người dùng tên của trạm phát PS được truyền trong group 0A
Radio text (RT): Cho phép truyền tối đa 64 ký tự Ngoài ra RT cho phép
truyền các bản tin chuỗi RT được truyền trong group 2A và 2B
Clock time and date (CT): Cho phép truyền thông tin thời gian và ngày
tháng hiện tại Các máy thu có thể hiển thị thời gian hoặc đồng bộ lại thời gian nội
bộ CT được truyền trong group 4A
Các thông tin điều khiển RDS
Program Identification (PI): Mã PI cho phép máy thu FM phân biệt được
các quốc gia, khu vực trong trường hợp cùng một chương trình được truyền đi và xác định các chương trình riêng biệt Nó không hiển thị trực tiếp trên màn hình và được gán cho mỗi chương trình riêng lẻ, cho phép phân biệt với các chương trình khác Mã PI cho phép máy thu tìm kiếm tự động một tần số thay thế cho chương trình hiện tại trong trường hợp tín hiệu nhận được không tốt
Program type code (PTY): Định nghĩa loại chương trình được truyền trong
mỗi group (Ví dụ: tin tức, nhạc Pop, nhạc Jazz…) Bao gồm 5 bit, có thể định nghĩa được 32 loại chương trình Máy thu có thể sử dụng PTY để tìm kiếm những loại chương trình cụ thể
Trang 19 Traffic Program Identification (TP): Dùng để xác định các trạm phát đang
phát các bản tin giao thông không TP được truyền trong tất cả các group
Traffic Announcement Identification (TA): dùng để cho biết một sự kiện
giao thông đang diễn ra TA có thể sử dụng để máy thu FM tự động chuyển kênh, thay đổi mức âm lượng TA được truyền trong group 0a, 0B và 15B
Music/Speech Switch (M/S): dùng để xác định chương trình đang phát là
âm nhạc hay giọng nói Tín hiệu này cho phép máy thu tự động thay đổi mức độ âm lượng cho phù hợp với âm nhạc hoặc giọng nói M/S được truyền trong group 0A, 0B và 15B
Decoder Identification (DI): dùng để xác định chế độ hoạt động DI được
truyền trong group 0a, 0b, 15B
Alternative Frequencies (AF): tần số thay thế được sử dụng để gửi danh
sách các tần số truyền cùng một chương trình Máy thu có thể tự động chuyển sang một tần số thay thế nếu tín hiệu tại tần số hiện tại yếu
Program Item Number (PIN): dùng để xác định thời gian phát sóng của
một chương trình cụ thể Có thể sử dụng thông tin này để lập kế hoạch ghi lại một chương trình đã lên lịch PIN được truyền trong group 1A và 1B
Các thông tin RDS đặc biệt
Enhanced Other Networks Information (EON):
Thông tin này được sử dụng để cập nhật thông tin các chương trình có thể nhận được lưu trữ trong máy thu EON bao gồm các dữ liệu như tần số thay thế, tên
PS, bản tin TP, TA, PTY, PIN… của mỗi chương trình RDS Chúng được tham chiếu bởi các mã PI Bên thu RDS có thể thiết lập một cơ sở dữ liệu của chương trình giúp cho người sử dụng thuận tiện
Ví dụ như một trạm phát không cung cấp thông tin giao thông, RDS có thể sử dụng chương trình giao thông của một trạm khác Để làm điều này, máy thu tạm thời chuyển qua một trạm khác trong thời gian có bản tin giao thông
Các thông tin có thể truyền qua EON:
EON-PI: xác định các chương trình khác và giàn chương trình liên quan
Trang 20 EON-PS: PS của các chương trình khác có thể truyền qua EON
EON-PTY: PTY của các chương trình khác có thể truyền qua EON
EON-TP: Cờ TP của các chương trình khác có thể truyền qua EON Nó cho
phép khả năng xác định các trạm phát sóng cung cấp chương trình giao thông
EON-TA: Cờ TA của các chương trình khác có thể truyền qua EON Nó cho
phép khả năng phát hiện các bản tin giao thông đang diễn ra ở chương trình khác
Nó có thể sử dụng để tự động chuyển chương trình trong thời gian bản tin diễn ra
EON-AF: Danh sách các tần số thay thế của các chương trình EON tham
chiếu cũng có thể được truyền đi
EON được truyền trong group 14A và 14B
Transparent Data Channel (TDC): bao gồm 32 kênh có thể sử dụng để
truyền bất cứ loại dữ liệu nào Máy thu RDS có thể sử dụng dữ liệu TDC cho một ứng dụng bên ngoài như điều khiển một bảng quảng cáo hiển thị dữ liệu liên tiếp TDC được truyền trong group 5A và 5B
In house applications (IH): có thể được sử dụng bởi nhà cung cấp để truyền
bất cứ loại dữ liệu nào với mục đích nội bộ ví dụ như dùng để chuyển mạch từ xa
IH được truyền trong group 6A và 6B
Emergency Warning System (EWS): Cho phép truyền các bản tin cảnh
báo Khi nhận được máy thu có thể tự động chuyển sang một đài cảnh báo xác định trước EWS được truyền trong group 1A và 9A
Hìnn 1.4: Phổ tín hiệu FM và RDS [1]
Trang 211.3.3 Nguyên lý hoạt động của RDS
RDS hoạt động bằng cách thêm dữ liệu vào các tín hiệu băng tần cơ sở Các tín hiệu băng tần cơ sở bao gồm một số thành phần Đầu tiên là thành phần audio mono bao gồm thành phần trái cộng phải (L + R) được truyền đi từ tần số 50Hz đến
15 KHz Thứ hai là các tín hiệu khác stereo sau khi điều chế biên độ như một cặp sóng mang bị chặn tại 38KHz Một tín hiệu 19KHz ( gọi là tần số pilot) cũng được truyền và điều này cho phép bộ giải điều chế bên thu tạo lại chính xác sóng mang phụ 38KHz để giải mã các tín hiệu khác stereo Các tín hiệu khác stereo nằm ở dải tần cao hơn dải tần nghe được (tai người nghe được trong dải tần từ 20Hz đến 20KHz) và kết quả là nó không ảnh hưởng đến tín hiệu mono bình thường.Thông tin RDS được truyền trên một sóng mang phụ 57KHz như hình vẽ Chính vì yếu tố này lên các nhà phát triển sản phẩm đã dùng công nghệ RDS để truyền liên tục và đồng thời cùng các bản tin phát thanh mà không ảnh hưởng đến việc phát sóng Các sóng mang phụ RDS bị khóa trong các tín hiệu âm dẫn
Các sóng mang phụ được sử dụng để mang thông tin được điều chế pha để mang dữ liệu Kỹ thuật điều chế pha được dùng là điều chế pha cầu phương (Quadrature Phase Shift Keying - QPSK) Kỹ thuật này cho phép khả năng miễn tạp
âm trong khi vẫn cho phép các dữ liệu được truyền với tốc độ phù hợp Kết hợp với việc các sóng mang phụ hoạt động ở một hài của tín hiệu âm dẫn, tín hiệu audio giảm thiểu được nhiễu can thiệp
Do các bản tin RDS được truyền trên các sóng mang phụ nên nó sẽ không ảnh hưởng đến các tín hiệu của sóng FM Sử dụng một sóng mang phụ 57 KHz, trạm phát có thể truyền tải dữ liệu kỹ thuật số RDS đến máy thu có sử dụng bộ chỉnh FM RDS Với các thông tin hiển thị RDS (PS ,RT ) khi thưởng thức các bản nhạc trên sóng FM, các thông tin về trạm phát, tên bài hát cũng có thể được truyền đi để cung cấp thêm thông tin cho người nghe Đặc với các tài xế xe ô tô, tính năng này giúp
họ nhận thông tin từ các bản tin giao thông một cách nhanh chóng và kịp thời nhất
Trang 22để điều khiển xe an toàn hơn Các hệ thông thu phát sóng FM có thể hoạt động tối
ưu hơn khi ứng dụng được các bản tin điều khiển của RDS
Ví dụ bản tin điểu khiển PI (Program Identification), AF (Alternative Frequencies) cho phép máy thu tìm kiếm tự động một tần số thay thế cho chương trình hiện tại trong trường hợp tín hiệu nhận được không tốt Cờ xác nhận chương trình giao thông (Traffic Program Identification Flag-TP) được sử dụng để xác định các trạm cung cấp chương trình giao thông Cờ này được thiết lập nếu các trạm tự động đặt cờ TA trên thông báo giao thông TP được sử dụng để tự động tìm các trạm Cờ xác nhận chương trình giao thông được truyền trong mọi nhóm Cờ xác nhận thông báo giao thông (Traffic Announcement Identification Flag –TA) được dùng để biểu thị một thông báo giao thông đang được phát Bộ bắt sóng sử dụng cờ
TA để :
Tự động chuyển sang bắt sóng FM nếu nguồn âm thanh khác được chọn (VD, CD, catsette…)
Tự động tăng âm lượng âm thanh
Mã chuyển âm nhạc/bài phát biểu (Music/Speech switch – M/S) sử dụng để xác định chương trình âm nhạc hoặc bài phát biểu được truyền Thiết bị thu bắt tín hiệu có hai lựa chọn âm thanh – một là âm nhạc, một là phát biểu Điều này cho phép người sử dụng cấu hình các thiết lập theo yêu cầu cá nhân Mã chuyển âm nhạc/bài phát biểu được truyền trong nhóm 0A, 0B và 15B
Trong giới hạn luận văn của mình em sẽ đi sâu vào nghiên cứu về các bản tin hiển thị RDS và xây dựng phát triển ứng dụng với các bản tin hiển thị này nhằm hướng đến các nhu cầu giải trí, nâng cao chất lượng cuộc sống của con người
Một hệ thống thu phát RDS bất kì nào cũng đều được nghiên cứu và phát triển dựa trên các cơ sở vật lý và nguyên lý như đã nêu Mục đích nhắm đảm bảo tính đồng nhất của giao thức trên toàn cầu theo chuẩn của quốc tế Dựa trên cơ sở lý
Trang 23thuyết về sóng FM và giao thức RDS em sẽ tiếp tục nghiên cứu và trình bày phần thiết kế chi tiết giao thức RDS trong hệ thống thu phát sóng FM
Trang 24CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ RDS TRONG HỆ
THỐNG THU FM TRÊN ANDROID 2.1 GIỚI THIỆU CHƯƠNG
Để bên thu có thể nhận được đầy đủ thông tin văn bản mà bên phát gửi đi việc đầu tiên phải đảm bảo đồng bộ cấu trúc thông tin giữa hai bên Chương 2 sẽ phân tích và đưa ra các sơ đồ khối tổng quát toàn hệ thống thu FM, vị trí và chức năng của module RDS trong hệ thống và sơ đồ hoạt động của chúng
2.2 SƠ ĐỒ TỔNG QUÁT CỦA HỆ THỐNG
2.2.1 Kiến trúc FM radio trong hệ điều hành Android
FM radio được phát triển trên hệ điều hành android, do đó các thành phần và kiến trúc phân tầng cũng dựa trên hệ điều hành này Android là tổ hợp các phần mềm cho thiết bị di động bao gồm hệ điều hành, middleware và các ứng dụng cơ bản Android SDK (Software Development Kit) cung cấp các công cụ và các giao diện lập trình cần thiết (API) cho việc phát triển ứng dụng trên nền tảng Android sử dụng ngôn ngữ Java
Các tính năng
Application framework: Cho phép tái sử dụng và thay thế các thành phần
của hệ thống
Dalvik virtual machine: Tối ưu cho các thiết bị mobile
Integrated browser: Dựa trên phần mềm mã nguồn mở WebKit
Optimized graphics: Cung cấp các thư viện đồ họa 2D có thể tùy chỉnh hình
ảnh linh hoạt, đồ họa 3G dựa trên OpenGL ES 2.0 (phụ thuộc phần cứng hệ thống)
SQLite: Cơ sở dữ liệu
Media support: Hỗ trợ các định dạng âm thanh, hình ảnh và video (MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony: phụ thuộc phần cứng hệ thống
Bluetooth, EDGE, 3G, WiFi: Phụ thuộc phần cứng hệ thống
Camera, GPS, la bàn, cảm biến gia tốc: Phụ thuộc phần cứng hệ thống
Trang 25 Môi trường phát triển đa dạng: Bao gồm thiết bị mô phỏng, công cụ gỡ
lỗi, giám sát bộ nhớ, đánh giá hiệu năng, gói phần mềm hộ trợ Eclipse IDE
Hệ thống FM radio được xây dựng trên nền tảng android nên kiến trúc phân tầng sẽ dựa trên kiến trúc của hệ điều hành Android
Hình 2.1 Kiến trúc của hệ thống FM trong nền tảng hdh Android[6]
2.2.2 Cấu trúc và chức năng của các tầng
Từ sơ đồ khối ta có thể thấy rõ vị trí và mối liên kết của các tầng Cũng như kiến trúc cơ bản của hệ điều hành android sơ đồ khối của hệ thống RDS sẽ có cấu trúc và các thành phần như trong Hình 2.1
Lớp ứng dụng (Application)
Ứng dụng FM RDS App được xây dựng trên nền tảng hệ điều hành Android 5.0.1 Ứng dụng được phát triển bằng ngôn ngữ lập trình Java Nhiệm vụ trên tầng Application là xử lý về giao diện và tương tác với người dùng
Các chức năng chính của ứng dụng:
Trang 26 Thu sóng FM dải tần 86 – 110 MHz
Lấy và hiển thị thông tin RDS : PS , RT
Lưu danh sách các kênh yêu thích
Tùy chọn được các kênh theo mong muốn và dò đến kênh có chất lượng tốt tiếp theo
Lớp nền ứng dụng (Application FW)
Tầng nền ứng dụng tạo ra các phương thức giao tiếp với tầng Middleware Thông qua các đối tượng được tạo ra từ tầng này, tầng Application có thể dễ dàng kết nối với các tầng ở dưới
Hình 2.2 Giao tiếp giữa tầng App với tầng dưới
Từ Hình 2.2 ta có thế thấy các chỉ thị lệnh từ trên tầng Application (Java) sẽ được truyền xuống native code thông qua JNI Các dữ liệu từ tầng dưới được gửi lên tầng trên thông qua phương thức data callback Tầng này có nhiệm vụ làm cầu nỗi giữa tầng Application với các service của FM JNI sẽ được trình bày chi tiết ở
Chương 4
Trang 27Lớp trung gian của FM ( FM Middleware )
Hình 2.3 Các khối của tầng MiddleWare
Đối tượng IFMRDS được tạo ra để nhận các command lệnh từ trên tầng App rồi send xuống tấng dưới (Tầng HAL : Hardware Abstract layer ) như command yêu cầu turn On/Off app, yêu cầu tìm kiếm kênh, yêu cầu thông tin hiển thị của RDS Một đối tượng khác được tạo ra để luôn lắng nghe và nhận dữ liệu callback
từ tầng dưới là IMRDSEvenlistenner Các mã lệnh và dữ liệu truyền nhận được thực hiện qua cơ chế của Binder IPC
Trang 28Tầng HAL và Kernel
Hình 2.4 Kiến trúc tổng quát của tầng HAL
Các lệnh từ trên tầng ứng dụng (Application ) sẽ được truyền truyền xuống tầng HAL thông qua các interface (giao diện điều khiển) của Java APIs Các interface này cho phép tầng App có thể giao tiếp được với V4L2 thông qua tầng JNI
FM driver được phát triển bằng cách sử dụng kiến trúc FM V4L2 Kiến trúc này hỗ trợ các phương thức: tune, seek, mute …
Giao diện V4L2 được cài đặt cho FM driver dựa trên kiến trúc của Qualcom chip set Vì vậy nó được mở rộng để hỗ trợ các tính năng mà phiên bản hiện tại của V4L2 không hỗ trợ như: initialization and power up
Các FM Host đã cung cấp FM java api giúp ta có thể dễ dàng điều khiển FM driver
Những interface này cho phép tầng Application giao tiếp với FM driver thông qua lớp JNI Lớp JIN sẽ chuyển đổi java apis để gọi thư viện native C Thư viện C
Trang 29này sẽ giao tiếp lần lượt với các interface của FM driver (Read, write via ioctl function)
2.2.3 Cấu trúc của module RDS trong hệ thống
Module RDS có các thành phần nằm dải ở hết các tầng Chúng có các nhiệm
vụ và chức năng riêng trong toàn bộ sơ đồ khối
Hình 2.5 Sơ đồ kiến trúc tổng quan của module RDS
Tầng UI: Tầng này có nhiệm vụ xây dựng các thành phần giao diện tương tác với người dùng Ngôn ngữ lập trình được sử dụng là java
Tầng Middleware: Tầng này bao gồm các native code, các service chạy ngầm
để lắng nghe sự kiện từ tầng kernel gửi lên và các interface giúp điều khiển Fmdriver
Trang 30Khi có một request lấy thông tin hiển thị RDS từ trên UI Các mã lệnh này sẽ được truyền xuống tầng native thông qua phương thức JNI Và tiếp tục được truyền xuống dưới kernel thông qua các câu lệnh của systemcall
Dữ liệu đẩy từ tầng kernel qua bộ RDS parser và được chọn lọc hiển thị trên giao diện người dùng
Tầng kernel: Bao gồm tầng HAL và driver của chip qualcomm Khối giã mã RDS và thu phát FM được thực thi tại tầng này
2.3 XÂY DỰNG SƠ ĐỒ HOẠT ĐỘNG CỦA RDS
Ở mục trước tác giả đã nêu rõ sơ đồ khối tổng quát và mối liên hệ giữa các tầng Ở phần này tác giả sẽ tiếp tục đi sâu vào sơ đồ hoạt động chi tiết của ứng dụng
2.3.1 Xây dựng biểu đồ hoạt động
Quá trình Turn on/off RDS app
Hình 2.6 Sơ đồ turn On/Off phần mềm
Mô tả quá trình hoạt động: Người dùng khởi động phần mềm bằng cách kết
nối anten (kết nối tai nghe) và bật nút nguồn trên giao diện phần mềm Nếu có kết
Trang 31nối anten thì phiên sử dụng sẽ bắt đầu và giao diện sẽ được cập nhật để dùng các tính năng khác như tìm kiếm kênh, lưu kênh yêu thích, chuyển kênh
Quá trình tìm kiếm
kênh
Hình 2.7 Sơ đồ quá trình tìm kiếm kênh
Mô tả quá trình hoạt động tìm kiếm kênh: Khi phần mềm đã được bật, quá
trình tìm kiếm kênh sẽ được khởi chạy và trả về các kênh có tín hiệu tốt Các mã lệnh tìm kiếm kênh sẽ được truyền xuống tầng service (FMRadioServive.java) Thông qua tầng native service (FMPlayerNative.java) các mã lệnh này sẽ được gửi xuống FM driver và hàm tìm kiếm sẽ được gọi (FMRadioController::SearchAll () ) Khi các kênh có tín hiệu tốt được dò thấy thì các kết quả tìm kiếm sẽ được gửi lên tầng ứng dụng thông qua tầng service Việc tìm kiếm này sẽ được thực hiện trên