Vấn đề chúng ta cần quan tâm là chất lượng kênh đường truyền của mỗi người sử dụng độc lập và cách xác định nó. Ví dụ như: tỷ lệ công suất ký hiệu trên tạp âm ( tỷ số Es/No), chất lượng bộ tách UE. Nút B có thể ước lượng tốc độ dữ liệu được hỗ trợ cho mỗi UE bằng cách giám sát các lệnh điều khiển công suất phát theo chu kỳ một giá trị CQI đặc thù của HSDPA trên kênh điều khiển vật lý dành riêng tốc độ cao (HS-DPCCH) đường lên, kênh này cũng mang cả thông tin báo hiệu (Ask / Nask) ở dạng gói dựa trên L1 cho mỗi kênh liên kết. Khi đã ước tính được chất lượng kênh, hệ thống chia sẻ tài nguyên mã và công suất HS-DSCH giữa những người sử dụng khác nhau.
Lớp điều khiển truy nhập môi trường MAC được đặt tại nút B, do đó cho phép truy nhập nhanh hơn tới các giá trị đo lường tuyến kết nối, lập lịch gói hiệu quả hơn và nhanh hơn, cũng như có thể kiểm soát chất lượng QoS chặt chẽ hơn. So sánh với kỹ thuật WCDMA, kênh HS-DSCH không thực hiện với điều kiện công suất phát nhanh và hệ số trải phổ thay đổi. Bằng cách sử dụng kỹ thuật mã hoá Turbo tốc độ thay đổi, điều chế 16 QAM, cũng như hoạt động đa mã mở rộng, kênh HS-DSCH hỗ trợ tốc độ dữ liệu đỉnh từ 120 Kbps tới hơn 10Mbps. Quá trình điều chế và mã hoá thích ứng cơ bản có một dải động khoảng 20dB, và được mở rộng hơn nữa số đa mã khả dụng.
156 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3372 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Các giải pháp kỹ thuật sử dụng trong WCDMA – HSDPA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ợc gọi là HS-DSCH (High Speed Downlink Shared Channel)-kênh chia sẻ đường xuống tốc độ cao. Kênh truyền tải này hoạt động hoàn toàn khác biệt so với các kênh thông thường và cho phép thực hiện download với tốc độ vượt trội. Và đây là một kênh chuyên dụng cho việc download. Điều đó cũng có nghĩa là dữ liệu sẽ được truyền trực tiếp từ nguồn đến điện thoại. Song quá trình ngược lại, tức là truyền dữ liệu từ điện thoại đến một nguồn tin thì không thể thực hiện được khi sử dụng công nghệ HSDPA. Công nghệ này có thể được chia sẻ giữa tất cả các người dùng có sử dụng sóng radio, sóng cho hiệu quả download nhanh nhất.
HSDPA còn sử dụng điều chế và mã hoá thích ứng AMC, HARQ nhanh, và lập lịch gói (Packet Scheduling) nhanh. Những tính năng này được phối hợp chặt chẽ và cho phép thích ứng các tham số truyền dẫn theo mỗi khoảng thời gian TTI (Transmission Time Interval) nhằm liên tục hiệu chỉnh sự thay đổi của chất lượng kênh vô tuyến.
5.2 Những cải tiến quan trọng của HSDPA so với WCDMA
Hình 5.2 Các tính năng cơ bản của HSDPA khi so sánh với WCDMA
Trong WCDMA, điều khiển công suất nhằm giữ ổn định chất lượng tín hiệu nhận được (Eb/No). Điều này sẽ tạo ra các giá trị đỉnh trong công suất phát và tăng nền nhiễu đa truy cập, do đó sẽ làm giảm dung lượng của toàn mạng. Hơn thế nữa, sự hoạt động của điều khiển công suất yêu cầu luôn luôn phải đảm bảo một mức dự trữ nhất định trong tổng công suất phát của Node B để thích ứng với các biến đổi của nó. Loại bỏ được điều khiển công suất sẽ tránh được các hiệu ứng tăng công suất kể trên cũng như không cần tới dự trữ công suất phát của tế bào.
Tuy nhiên, do không sử dụng điều khiển công suất, HSDPA yêu cầu các kỹ thuật khác để thích ứng các tham số tín hiệu phát nhằm liên tục bám theo các biến thiên của kênh truyền vô tuyến.
Với kỹ thuật AMC, điều chế và tỉ lệ mã hoá được thích ứng một cách liên tục với chất lượng kênh thay cho việc điều khiển công suất. Truyền dẫn sử dụng nhiều mã Walsh cũng được sử dụng trong quá trình thích ứng liên kết. Sự kết hợp của hai kỹ thuật thích ứng liên kết trên đã thay thế hoàn toàn kỹ thuật hệ số trải phổ biến thiên trong WCDMA do khả năng thích ứng chậm đối với sự biến thiên của truyền dẫn vô tuyến tốc độ cao.
Do HSDPA không còn sử dụng điều khiển công suất, phải tối thiểu hoá sự thay đổi của chất lượng kênh vô tuyến trong mỗi khoảng thời gian TTI, vấn đề này được thực hiện nhờ việc giảm độ rộng của TTI từ 10 ms ở WCDMA xuống còn 2ms ở HSDPA.
Với sự bổ sung kỹ thuật HARQ nhanh, nó còn cho phép phát lại một cách nhanh nhất các block dữ liệu đã bị mất hoặc bị lỗi và khả năng kết hợp với thông tin mềm ở lần phát đầu tiên với các lần phát lại sau đó.
Để thu thập được thông tin về chất lượng kênh hiện thời cho phép các kỹ thuật thích ứng liên kết và lập biểu gói theo dõi giám sát một cách liên tục các điều khiển vô tuyến hiện tại của thuê bao di động, lớp điều khiển trung gian MAC thì làm nhiệm vụ giám sát kênh nhanh cho phép Bộ lập biểu gói nhanh và đặc tính chia sẻ theo thời gian của kênh HS-DSCH về bản chất có thể xem như phân tập lựa chọn đa người dùng với những lợi ích rất to lớn đối với việc cải thiện thông lượng của tế bào. Việc chuyển dịch chức năng lập biểu gói đến Node B là thay đổi chính về kiến trúc nếu so sánh với WCDMA.
5.3 Nguyên lý hoạt động của HSDPA
Hình 5.3 Nguyên lý hoạt động cơ bản của HSDPA
HSDPA gồm các giải pháp:
Mã hoá và điều chế thích ứng AMC
Thực hiện đan xen thời gian truyền dẫn ngắn TTI=2ms
Truyền dẫn đa mã, lớp vật lý tốc độ cao L1
Yêu cầu lặp tự động lai H-ARQ.
Trong giải pháp HSDPA, thiết bị sắp xếp gói tin sẽ được chuyển từ bộ điều khiển mạng vô tuyến RNC tới Node-B nhằm giúp người sử dụng dễ dàng truy nhập vào các chức năng thống kê giao diện vô tuyến. Kỹ thuật sắp xếp gói tin tiên tiến sẽ giúp điều chỉnh được tốc độ dữ liệu người sử dụng sao cho thích hợp với các điều kiện kênh vô tuyến tức thời.
Trong quá trình kết nối, UE sẽ định kỳ gửi một CQI (Channel Quality Indicator)-chỉ thị chất lượng kênh tới Node-B cho biết tốc độ dữ liệu nào (bao gồm kỹ thuật điều chế và mã hoá, số lượng các mã đã sử dụng) mà thiết bị này có thể hỗ trợ khi ở dưới các điều kiện vô tuyến hiện thời. Đồng thời, UE gửi một báo nhận (Ack/Nack) ứng với mỗi gói giúp node-B biết được thời điểm lặp lại quá trình truyền dữ liệu. Cùng với chức năng thống kê chất lượng kênh tương ứng cho từng UE trong một cell, thiết bị sắp xếp gói tin sẽ thực hiện sắp xếp các gói của các UE một cách công bằng.
Vấn đề chúng ta cần quan tâm là chất lượng kênh đường truyền của mỗi người sử dụng độc lập và cách xác định nó. Ví dụ như: tỷ lệ công suất ký hiệu trên tạp âm ( tỷ số Es/No), chất lượng bộ tách UE. Nút B có thể ước lượng tốc độ dữ liệu được hỗ trợ cho mỗi UE bằng cách giám sát các lệnh điều khiển công suất phát theo chu kỳ một giá trị CQI đặc thù của HSDPA trên kênh điều khiển vật lý dành riêng tốc độ cao (HS-DPCCH) đường lên, kênh này cũng mang cả thông tin báo hiệu (Ask / Nask) ở dạng gói dựa trên L1 cho mỗi kênh liên kết. Khi đã ước tính được chất lượng kênh, hệ thống chia sẻ tài nguyên mã và công suất HS-DSCH giữa những người sử dụng khác nhau.
Lớp điều khiển truy nhập môi trường MAC được đặt tại nút B, do đó cho phép truy nhập nhanh hơn tới các giá trị đo lường tuyến kết nối, lập lịch gói hiệu quả hơn và nhanh hơn, cũng như có thể kiểm soát chất lượng QoS chặt chẽ hơn. So sánh với kỹ thuật WCDMA, kênh HS-DSCH không thực hiện với điều kiện công suất phát nhanh và hệ số trải phổ thay đổi. Bằng cách sử dụng kỹ thuật mã hoá Turbo tốc độ thay đổi, điều chế 16 QAM, cũng như hoạt động đa mã mở rộng, kênh HS-DSCH hỗ trợ tốc độ dữ liệu đỉnh từ 120 Kbps tới hơn 10Mbps. Quá trình điều chế và mã hoá thích ứng cơ bản có một dải động khoảng 20dB, và được mở rộng hơn nữa số đa mã khả dụng.
5.4 Cấu trúc HSDPA
5.4.1 Mô hình giao thức HSDPA
Hình 5.4 Kiến trúc giao diện vô tuyến của kênh truyền tải HS-DSCH
Trong cấu trúc HSDPA, thiết bị sắp xếp gói tin sẽ được chuyển từ bộ điều khiển mạng vô tuyến RNC tới Node-B nhằm giúp người sử dụng dễ dàng truy nhập vào các chức năng thống kê giao diện vô tuyến. Kỹ thuật sắp xếp gói tin tiên tiến sẽ giúp điều chỉnh được tốc độ dữ liệu người sử dụng sao cho thích hợp với các điều kiện kênh vô tuyến tức thời.
Nếu như tất cả các kênh truyền tải theo kiến trúc WCDMA, chúng đều chấm dứt tại RNC thì kênh HS-DSCH lại chấm dứt ngay tại Node B, lớp MAC-hs (lớp điều khiển truy nhập môi trường tốc độ cao), sẽ điều khiển các tài nguyên của kênh này và nằm ngay tại Node B. Do đó, cho phép nhận các bản tin về chất lượng kênh hiện thời để có thể tiếp tục theo dõi giám sát chất lượng kênh hiện thời để có thể liên tục theo dõi giám sát chất lượng tín hiệu cho thuê bao tốc độ thấp. Vị trí này của MAC-hs tại Node B cũng cho phép kích hoạt giao thức HARQ từ lớp vật lý, nó giúp cho các quá trình phát lại diễn ra nhanh hơn.
Đặc biệt hơn, lớp MAC – hs chịu trách nhiệm quản lý chức năng HARQ cho mỗi user, phân phối tài nguyên HS-DSCH giữa tất cả các MAC-d theo sự ưu tiên của chúng (ví dụ như lập lịch gói), và lựa chọn khuôn dạng truyền tải thích hợp cho mỗi TTI. Các lớp giao diện vô tuyến nằm trên MAC không thay đổi so với kiến trúc WCDMA bởi vì HSDPA chỉ tập trung vào việc cải tiến truyền tải của các kênh logic.
Lớp MAC-hs cũng lưu giữ dữ liệu của user được phát qua giao diện vô tuyến, điều đó đã tạo ra một số thách thức đối với việc tối ưu hóa dung lượng bộ nhớ đệm của Node B.
5.4.2 Cấu trúc kênh
Hình 5.5 Giao diện vô tuyến của HSDPA
So với WCDMA thì HSDPA có thêm một số kênh vật lý thêm vào:
- Kênh vật lý chia sẻ đường xuống tốc độ cao HS-PDSCH (High Speed Physical Downlink Shared Channel)
- Kênh điều khiển vật lý HS-DPCCH (HS-Physical Control Channel).
5.4.2.1 Kênh vật lý chia sẻ đường xuống tốc độ cao: HS-PDSCH
Trong kênh này thời gian và mã hoá được chia sẽ giữa những người sử dụng gắn liền với Node-B. Đây là cơ cấu truyền tải cho các kênh logic được thêm vào:
- Kênh chia sẻ đường xuống tốc độ cao HS-DSCH (HS-Downlink Shared Channel)
- Kênh điều khiển chia sẻ tốc độ cao HS-SCCH (HS-Shared Control Channel).
Những tài nguyên mã hoá HS-DSCH gồm có một hoặc nhiều bộ mã định hướng với hệ số phân bố cố định SF 16. Phần lớn 15 bộ mã này có thể phân bổ cho những yêu cầu về truyền dẫn dữ liệu và điều khiển. Các tài nguyên mã hoá sẵn sàng được chia sẻ chủ yếu trong miền thời gian nhưng nó có thể chia sẻ tài nguyên mã hoá bằng cách dùng mã hoá đa thành phần. Khi cả thời gian và bộ mã được chia sẽ, từ hai đến bốn người sử dụng có thể chia sẽ tài nguyên mã hoá trong cùng một TTI.
Hình 5.6 Thời gian và bộ mã được chia sẻ trong HS-DSCH
Đặc tính quan trọng của kênh HS-DSCH là tính linh động của nguồn được chia sẻ trong khoảng thời gian rất ngắn 2ms. Khi đó dữ liệu người dùng được đặt trên kênh HS-DSCH, chúng liên tục được gửi đi trong khe thời gian 2ms đó.
Khác với WCDMA trong HSDPA còn có thêm khoảng DTX - khoảng truyền gián đoạn nằm trên khe DPDCH, nó có tác dụng lọc nhiễu trên đường truyền nhưng không thể đạt được tốc độ lớn nhất. Vì WCDMA ra đời với mục tiêu chính là tăng dung lượng hệ thống cho các dịch vụ thoại so với hệ thống 2G (GSM) mà thôi chứ chưa sự đạt được những yêu cầu và kỳ vọng đối dịch vụ số liệu vì tốc độ hỗ trợ dữ liệu còn thấp (khoảng 384 kbps). Đối với dịch vụ thoại thì chúng ta đã biết, nguồn tài nguyên (mã, công suất, nhiễu) yêu cầu để truyền dẫn dịch vụ này là không thay đổi (do tốc độ truyền dẫn là không thay đổi) do đó điều khiển công suất thực sự hiệu
quả vì nó giảm nhiễu MAI làm cho dung lượng kênh thoại mà hệ thống có thể đáp ứng trên một đơn vị tài nguyên vô tuyến tăng lên.
Tuy vậy khi triển khai các dịch vụ số liệu ( File Transfer, Internet Access, E-mail,…) chúng ta thấy rằng đặc thù của những dịch vụ này là yêu cầu nguồn tài nguyên rất lớn và trong khoảng một thời gian ngắn. Ví dụ như nếu truy nhập vào một trang web nào đó thì cùng một lúc nội dung văn bản và hình ảnh của website cần truyền đến máy đầu cuối trong một khoảng nhất định. Sau khi nội dung trang web đã download về máy đầu cuối thì thông thường người sử dụng sẽ xem nội dung và không truy nhập tài nguyên hệ thống nữa. Những dịch vụ mà yêu cầu nguồn tài nguyên lớn và trong khoảng thời gian ngắn như vậy trong kỹ thuật người ta gọi chung một tên là “bursty data service”.
Với kênh HS-DSCH trong HSDPA thì người ta cấp phát 15 mã trải phổ với hệ số trải 16 để dùng chung giữa các máy trong cùng một sector. Các máy được cấp phát tài nguyên trong từng khoảng thời gian nhất định. Bộ scheduler sẽ cấp phát tài nguyên: bao nhiêu mã trải phổ, công suất là bao nhiêu phụ thuộc vào yêu cầu dịch vụ, trạng thái kênh của user đó.
Hình 5.7 Trạng thái kênh của các user
Như hình vẽ trên, tại khoảng thời gian đầu tiên User 1 có trạng thái kênh tốt nên bộ scheduler đưa ra quyết định cấp phát tài nguyên cho User này. Khi đã quyết định cấp phát tài nguyên cho User 1 này kỹ thuật thích ứng cũng được áp dụng. Nếu trạng thái kênh của User lúc này tốt và nhu cầu về tốc độ truyền dẫn lớn thì máy phát có thể dùng điều chế 16-QAM hoặc mã kênh với tỷ lệ mã lớn để truyền tốc lớn hơn. Đến khoảng thời gian thứ 2, User 2 sẽ được cấp phát để truyền dẫn vì User 2 có trạng thái kênh tốt hơn như trên hình vẽ. Bằng việc cấp phát tài nguyên động, kết hợp với kỹ thuật thích ứng (ACM) chúng ta có thể thấy rằng kênh truyền dẫn chung luôn có chất lượng kênh ở mức tốt được thể hiện ở đường nét đứt trên hình vẽ.
Ngoài dữ liệu người sử dụng, Node-B còn thực hiện truyền dẫn báo hiệu điều khiển nhằm thông báo sắp xếp cho người dùng kế tiếp. Báo hiệu này được sắp xếp trong kênh điều khiển chia sẻ tốc độ cao (HS-SCCH), là kênh dùng chung cho các người sử dụng, và nó được thực hiện bằng cách truyền dẫn hai khe thời gian HS-SCCH TTI. Kênh HS-SCCH mang những thông tin sau:
- Mặt lạ ID của những người dùng đặc trưng UE. Nhiệm vụ chính của mặt lạ là xác định người dùng được phục vụ trong chu kỳ TTI tiếp theo.
- Thông tin liên quan đến khuôn dạng truyền tải, mô tả các mã định kênh, phương thức kỹ thuật điều chế được sử dụng. Tỉ lệ mã hoá được trích ra từ kích cỡ của block truyền tải và các tham số khuôn dạng truyền tải khác.
- Thông tin liên quan đến HARQ: đó có thể là chu kỳ phát tiếp theo sẽ là một block mới hay là một block được phát lại (do có thể gặp lỗi trước đó nên yêu cầu phát lại) và thông tin về các phiên bản.
Thông tin điều khiển này chỉ được sử dụng cho các UE sẽ được phục vụ trong chu kỳ tiếp theo, như vậy kênh báo hiệu này là một kênh chia sẻ theo thời gian cho tất cả các user.
Hình 5.8 Hệ thống trong trường hợp 1 kênh HS-SCCH và phân chia đa thời gian
RNC cũng có thể chỉ rõ công suất được khuyến nghị cho HS-SCCH (độ lệch liên quan tới các bit hoa tiêu của của kênh DPCH kết hợp). Công suất phát của HS-SCCH có thể là hằng số hoặc thay đổi theo thời gian tuỳ theo một chiến lược điều khiển công suất nào cho HS-DCCH.
5.4.2.2 Kênh điều khiển vật lý tốc độ cao: HS-DPCCH
Đây là kênh đường lên, được sử dụng mang tín hiệu báo nhận (ACK) đến Node-B trên mỗi block. Nó cũng được dùng để chỉ thị Chất lượng kênh CQI, là yếu tố được sử dụng trong AMC.
Hình 5.9 Cấu trúc kênh HS-DPCCH
Kênh HS-DPCCH dùng để cố định hệ số phân bố 256 và có một khe cấu trúc có độ rộng là 2/3 ms.
+ Khe đầu tiên được sử dụng để cho thông tin về HARQ.
+ Hai khe còn lại được dành cho CQI.
Thông tin về HARQ luôn luôn được gửi khi mà kênh HS- SCCH giải mã chính xác nhận ở đường tách sóng xuống.
Cả 2 khe đều hoạt động riêng biệt để lặp điều khiển. Ví dụ, trong một số trường hợp, quá trình lặp lại này diễn ra với chu kỳ 2 ms và hoạt động ở cạnh của tế bào khi công suất hiện tại không chắc chắn đủ cho quá trình lặp lại. Công suất điều khiển từ những tế bào HSDPA cũng có thể làm giảm bớt công suất nhận từ kênh HS-DPCCH trong quá trình chuyển giao trong miền nhỏ như thiết bị đầu cuối làm giảm công suất truyền nếu mỗi tế bào hoạt động gửi một lệnh yêu cầu.
Như vậy là việc không dùng điều khiển công suất mà điều khiển cấp phát nguồn tài nguyên sẽ làm cho dung lượng hệ thống tăng nhờ lợi dụng đặc tính biến đổi của kênh phading. Rõ ràng bằng việc sử dụng điều khiển truyền dẫn đã làm thay đổi cách nhìn về phading. Nếu trước đây chúng ta coi đó là một nhược điểm của môi trường truyền dẫn hở và tìm cách tránh, xóa bỏ thì bây giờ chúng ta lại được nhờ nó do chúng ta hiểu và sử dụng nó đúng tình huống.
Dung lượng của hệ thống theo phương pháp này càng tăng nếu như mật độ thuê bao trong sector càng cao vì với nhiều User phân bố đều ở tất cả các vị trí trong cell thì ở bất cứ thời điểm nào cũng có ít nhất một User có trạng thái kênh cực tốt để truyền dẫn với tốc độ cực lớn. Độ tăng dung lượng này người ta thường nhắc đến với tên gọi phân tập đa người sử dụng- Multi-User Diversity. Tuy nhiên có người sẽ đặt ra một câu hỏi là: Nếu bộ scheduler quyết định cấp phát tài nguyên dựa trên trạng thái kênh của máy đầu cuối thì sẽ có trường hợp có User sẽ không truyền dẫn được trong một khoảng thời gian dài vì User này luôn ở trạng thái kênh kém hơn những User khác. Thắc mắc này hoàn toàn hợp lý. Và nó dẫn đến vấn đề cân bằng giữa dung lượng hệ thống và sự thỏa mãn đối với người sử dụng. Sự thỏa mãn ở đây nghĩa là không để một User phải đợi quá lâu mới được truy nhập hệ thống. Để đạt được yếu tố cân bằng này các bộ scheduler được thiết kế ngoài dựa trên nguyên tắc ở trên còn phải kết hợp với nguyên tắc Round-Robin (first come, first serve). Và mỗi nhà sản xuất thiết bị sẽ có những lựa chọn thiết kế khác nhau chứ không nhà sản xuất nào giống nhà sản xuất nào vì bản thân vấn đề này chỉ được đưa ra nguyên lý trong 3GPP và 3GPP2 chứ không chuẩn hóa thành một kỹ thuật đặc biệt cụ thể.
Một điều thú vị khác nữa cần phải nhắc đến là không dùng điều khiển công suất mà điều khiển thu phát có động lực tốt đối với sự phát triển của thị trường máy đầu cuối. Điều này có thể được giải thích như sau: Khi điều khiển thu phát, bộ lập lịch gói dựa vào những thông tin trạng thái kênh do MS gửi về (Channel Quality Indicator Channel). Mà thường thì MS sẽ dựa vào tham số SIR để yêu cầu bộ lập lịch cấp phát tài nguyên. Do đó, máy di động càng hiện đại nghĩa là khả năng nén nhiễu càng lớn (nghĩa là SIR lớn) thì bộ lập lịch cấp phát và điều khiển BTS phát với tốc độ cao hơn. Như vậy nếu khách hàng đầu tư máy đầu cuối hiện đại sẽ được lợi chứ không phải là hệ điều hành hưởng lợi như sử dụng điều khiển công suất. Vì với điều khiển công suất, nếu máy đầu cuối tốt, BTS yêu cầu MS giảm công suất phát, do đó nhiễu giảm và dung lượng hệ thống tăng. Khi dung lượng tăng đó là lợi ích của hệ điều hành chứ không phải là lợi ích của người sử dụng. Với lợi ích thuộc về khách hàng như vậy có thể nói đây là yếu tố kích thích quá trình tiêu thụ máy đầu cuối sôi động hơn.
5.5 Các kỹ thuật sử dụng trong HSDPA
5.5.1 Điều chế và Mã hoá thích ứng-Kỹ thuật truyền dẫn đa mã
Trong thông tin di động, tỉ lệ tín trên tạp (SINR) của tín hiệu nhận được tại một thiết bị người sử dụng luôn biến đổi trong khoảng từ 30 – 40dB do phading nhanh và các đặc điểm về địa hình trong một cell. Nhằm cải thiện dung lượng của hệ thống, tốc độ dữ liệu đỉnh, vùng phủ sóng… tín hiệu truyền tới người dùng được xác định nhằm tính toán quá trình thay đổi chất lượng tín hiệu thông qua quá trình xử lý liên kết thích ứng. Trong WCDMA ứng dụng chức năng điều khiển công suất nhanh cho các liên kết thích ứng. Ngược lại, HSDPA lưu công suất phát không đổi qua TTI đồng thời sử dụng điều chế thích ứng và mã hoá (AMC) như một phương pháp liên kết thích ứng đan xen nhằm điều khiển công suất cải thiện hiệu suất phổ.
Để đối phó với dải động của tỷ số tạp âm trên nhiễu Eb/No tại đầu cuối UE, HSDPA thích ứng quá trình điều chế, tỷ lệ mã hoá và số mã hoá định kênh với các điều kiện vô tuyến hiện thời. Sự kết hợp của hai phương pháp trên gọi là: Điều chế và Mã hoá thích ứng – AMC Bên cạnh QPSK, HSDPA còn kết hợp chặt chẽ với phương thức điều chế 16QAM để tăng tốc độ dữ liệu đỉnh của các user được phục vụ với điều kiện vô tuyến thích hợp. Việc hỗ trợ cho QPSK có tính chất bắt buộc đối với thông tin di động, còn đối với 16QAM là một tuỳ chọn cho mạng và thiết bị người dùng UE.
Sử dụng đồng thời cả 2 phương thức điều chế này, đặc biệt là phương thức điều chế cấp cao 16 QAM, đưa ra một số thách thức nhất định đối với độ phức tạp của bộ thu đầu cuối, nó cần phải xác định được biên độ tương ứng của các ký hiệu nhận được, trong khi đối với phương pháp điều chế QPSK truyền thống chỉ yêu cầu tách pha tín hiệu. Một bộ mã hoá Turbo dựa trên bộ mã hoá Turbo R99 với tỉ lệ mã hoá 1/3, mặc dù các tỷ lệ mã hoá hiệu dụng khác trong phạm vi (xấp xỉ 1/6 đến 1/1) cũng có thể có được bằng các kỹ thuật ghép, trích, lặp mã. Kết quả là tạo ra một dải tỉ lệ mã có tới 64 giá trị khác nhau. Sự kết hợp của một kiểu điều chế và một tỉ lệ mã được gọi là “Lược đồ mã hoá và điều chế”
Ngoài kỹ thuật Điều chế và mã hoá thích ứng AMC, phát đa mã cũng có thể coi như là một công cụ thích ứng liên kết. Nếu như user có đầy đủ các điều kiện kênh vô tuyến thích hợp, node B có thể lợi dụng điều kiện này bằng cách phát nhiều mã song song với nhau, nhằm đạt được thông lượng dữ liệu đỉnh khá lớn.
Với kỹ thuật phát đa mã, toàn bộ dải động AMC có thể được tăng lên một lượng:10log 10 15 ~ 12 dBs
Toàn bộ dải động thích ứng liên kết do AMC kết hợp phát đa mã xấp xỉ 30 dB.
Node- B sẽ xác định tốc độ truyền dẫn dữ liệu dựa trên các báo cáo về chỉ thị chất lượng kênh CQI cũng như các thống kê công suất trên các kênh dành riêng. Tốc độ dữ liệu được điều chỉnh bằng cách thay đổi sơ đồ điều chế, tốc độ mã hoá cũng như số lượng mã hoá kênh HS-PDSCH. Sử dụng điều chế thích ứng và mã hoá AMC cho phép người sử dụng tiến gần hơn tới Node- B, có thể yêu cầu điều chế với tỉ lệ mã hoá cao hơn (chẳng hạn như điều chế 16- QAM với tỉ lệ mã hoá 3/4).
Bảng 5.1 Lược đồ mã hoá điều chế HSDPA, tốc độ bit tối đa khả dụng với mỗi mã
TFRC
Modulation
Effective Code Rate
Instanteaneous Data Rate with 1 HS-PDSCH code
#00
QPSK
0.14
68.5 kbps
#10
QPSK
0.27
128.5 kbps
#20
QPSK
0.39
188.5 kbps
#30
QPSK
0.52
248.5 kbps
#40
QPSK
0.64
308.0 kbps
#50
QPSK
0.77
368.5 kbps
#00
16 QAM
0.32
302.5 kbps
#10
16 QAM
0.38
362.0 kbps
#20
16 QAM
0.45
433.0 kbps
#30
16 QAM
0.54
518.0 kbps
#40
16 QAM
0.65
619.5 kbps
#50
16 QAM
0.77
741.5 kbps
5.5.2 Kỹ thuật H- ARQ
Khi vận hành HSDPA ở lân cận hiệu suất phổ cao nhất, tỉ lệ lỗi khối BLER sau lần truyền dẫn đầu tiên được khuyến nghị trong khoảng từ 10- 20%. Cơ chế yêu cầu lặp tự động lai H-ARQ được ứng dụng trong giải pháp HSDPA nhằm giảm trễ và tăng hiệu suất của quá trình tái truyền dẫn dữ liệu. Thực tế, H- ARQ là một giao thức dạng dừng lại và chờ SAW (Stop And Wait).
Trong cơ chế SAW, phía truyền dẫn luôn luôn ở quá trình truyền dẫn các block đang hiện hành cho tới khi thiết bị người sử dụng hoàn toàn nhận được dữ liệu. Để tận dụng thời gian khi Node- B chờ các báo nhận, có thể thiết lập N tiến trình SAW-ARQ song song cho thiết bị người dùng. Do đó, các tiến trình khác nhau truyền dẫn trong các TTI riêng biệt. Số tiến trình SAW-ARQ song song được thiết lập tối đa là 8 (N=8), tuy nhiên thông thường chọn giá trị N từ 4-6. Thời gian trễ nhỏ nhất cho phép giữa quá trình truyền dữ liệu gốc so với quá trình tái truyền dẫn dữ liệu lần đầu tiên trong HSDPA là 12ms.
Điều khiển H- ARQ lớp 1 được đặt tại Node-B, do đó việc lưu trữ các gói dữ liệu phi báo nhận cùng với chức năng sắp xếp các gói của quá trình tái truyền dẫn là không phụ thuộc vào RNC. Như vậy sẽ tránh được trễ tái truyền dẫn, ngoài ra các trễ này sẽ thấp hơn trễ gây ra bởi quá trình tái truyền dẫn RLC thông thường.
Kỹ thuật HARQ là điểm khác cơ bản so với kỹ thuật phát lại trong WCDMA bởi bộ giải mã UE kết hợp các thông tin “mềm” của quá trình phát lại của cùng một block ở cấp độ bit. Kỹ thuật này đưa ra một số yêu cầu về mở rộng dung lượng bộ nhớ của UE, do UE phải lưu các thong tin “mềm” của những lần phát giải mã không thành công.
Hình 5.10 :Hoạt động của giao thức SAW 4 kênh
Các phương pháp HARQ như sau:
- Kết hợp khuôn (CC: Chase Combining) mỗi lần phát lại chỉ đơn giản là sự
lặp lại của từ mã đã được sử dụng cho lần phát đầu tiên.
Ưu điểm: Việc truyền và truyền lại được giải mã riêng lẻ (tự giải mã), tăng tính đa dạng thời gian, có thể tăng tính đa dạng đường truyền.
Nhược điểm: Việc phát lại toàn bộ các gói sẽ lãng phí về băng thông.
-Tăng độ dư (IR : Incremental Redundancy): Sự phát lại bao gồm cả thông tin dư thừa bổ xung và thông tin này được phát kèm thêm nếu có lỗi giải mã trong lần phát đầu tiên.
Hình 5.11 : Quá trình truyền lại khối dữ liệu IR
Tăng độ dư được sử dụng để nhận được tính năng tối đa trong băng thông sẵn sàng. Lúc này block được phát lại chỉ bao gồm dữ liệu sửa chữa của tín hiệu gốc được truyền đi chứ không phải thông tin thực sự. Lượng thông tin dư thêm vào được gửi đi ngày càng tăng lên khi quá trình phát lại lặp đi lặp lại mà bên thu vẫn nhận bị lỗi.
Ưu điểm: Giảm bớt băng thông/ lưu lượng hữu dụng của một người sử dụng và dùng nó cho những người khác.
Nhược điểm: Các bit hệ thống chỉ được gửi đi khi truyền lần đầu và không thể truyền lại, điều đó làm cho quá trình truyền lại không thể tự giải mã. Vì thế, nếu quá trình truyền lần đầu bị mất thì phading rất lớn sẽ tác động và không có cơ hội khôi phục lại dữ liệu trong hoàn cảnh này.
5.6 Kết luận chương 5:
Với những cải tiến mang tính đột phá, HSDPA là một công nghệ đang được chú trọng phát triển. Trên thực tế, thị trường của HSDPA phát triển mạnh mẽ nhất, đặc biệt là ở giai đoạn khởi đầu, là ở những nước phát triển, nơi có lượng khách hàng khổng lồ sử dụng điện thoại di động chất lượng cao. Lý do là vì những chiếc điện thoại HSDPA sẽ có giá thành cao hơn hẳn những chiếc điện thoại thông thường – được nhắm vào thị trường những nước phát triển thấp hơn.
Đến năm 2010, con số này có thể là 100 triệu chiếc, theo phân tích của IDC. Hơn nữa, theo Strategic Analytics, đến năm 2010, 70% điện thoại 3G sẽ sử dụng HSDPA.
Tuy nhiên, sẽ mất nhiều thời gian để HSDPA thực sự trở nên phổ biến. Hầu hết các nước trên thế giới đều mới bắt đầu sử dụng kỹ thuật mạng 3G. Rất nhiều nhà cung cấp dịch vụ di động đang cố gắng triển khai mạng 3G và có thể được nâng cấp thành mạng 3.5G theo nhu cầu của thị trường.
C
Kết luận
ông nghệ điện thoại di động phổ biến GSM đang gặp nhiều cản trở và sẽ sớm bị thay thế bằng những công nghệ tiên tiến hơn.Các ứng dụng truyền thông hữu ích như điện thoại truyền hình, định vị và tìm kiếm thông tin, truy cập Internet, truyền tải dữ liệu dung lượng lớn, nghe nhạc và xem video chất lượng cao... cùng nhiều ứng dụng dịch vụ viễn thông tiên tiến khác đang được triển khai thực hiện trên mạng di động 3G.
Bộ Thông tin và Truyền thông (TT-TT) đã chính thức công bố tên của 4 nhà cung cấp dịch vụ viễn thông trúng tuyển 3G vào ngày 2/4/2009 .Các nhà cung cấp trúng tuyển đã bắt đầu vào việc khai thác dịch vụ 3 G và hướng phát triển chủ yếu là dựa trên công nghệ WCDMA. Trong tương lai gần thì 3 G sẽ trở nên gần gũi với người sử dụng dịch vụ viễn thông tại Việt Nam
Trong đồ án này em đã trình bày một cách cơ bản từ cấu trúc mạng, các giải pháp kỹ thuật trong WCDMA. Đồng thời đồ án cũng đưa ra hướng phát triển mới là công nghệ HSDPA với những cái tiến mang tính đột phá của nó.
Theo các nghiên cứu và từ thực tế từ các nước đã triển khai trước đó thì có thể nói 3G (WCDMA) hay xa hơn là 3.5G (HSDPA) có tương lai phát triển vô cùng tươi sáng.
Tuy nhiện, hiện trạng các dịch vụ nội dung số trên Mobile ở nước được đánh giá là vẫn còn nghèo nàn. Bên cạnh đó, thiết bị di động hỗ trợ nền tảng 3G được bán ra vẫn ở mức rất thấp.
Nhìn về tương lai cho thấy, muốn 3G phát triển thành công ở Việt Nam cần phải đẩy mạnh việc số hóa các dịch vụ tài chính công, hành chính công, y tế, giáo dục, thương mại điện tử, dịch vụ thuế… Có phát triển những dịch vụ này trên 3G thì mới đảm bảo bền lâu dài cho sự thành công của 3G tại Việt Nam khi việc ứng dụng Internet di động đi vào mọi mặt trong đời sống xã hội
Đồ án tuy đã nêu lên được cái nhìn khá đầy đủ về công nghệ WCDMA-HSDPA tuy nhiên do kiến thức, thực tế và thời gian hạn chế nên còn có nhiều thiếu sót cũng như chưa tìm hiểu thêm về các vấn đề mới như công nghệ HSUPA…và chủ yếu mang tính lý thuyết chứ chưa giải quyết được các yêu cầu thực tế đòi hỏi.
Một lần nữa em xin cảm ơn các thầy cô, các bạn và đặc biệt là cô giáo hướng dẫn: ĐẶNG THỊ TỪ MỸ đã tận tình giúp đỡ em hoàn thành bản đồ án này.
Quy Nhơn, ngày 10 tháng 6 năm 2010
Sinh viên thực hiện
Nguyễn Hải Quân
TÀI LIỆU THAM KHẢO
Tài Liệu Tiếng Việt :
[ 1 ] Vũ Đức Thọ, Thông tin di động số Cellular, Nhà xuất bản giáo dục, 1997.
[ 2 ] TS. Nguyễn Phạm Anh Dũng, Thông tin di động thế hệ ba, Học Viện Công Nghệ Bưu Chính Viễn Thông, 2002.
[ 3 ] Nguyễn Văn Thuận, Hệ thống thông tin di động WCDMA, Học Viện Công Nghệ Bưu Chính Viễn Thông, 2004.
[ 4 ] TS Trịnh Anh Vũ, Thông tin di động, NXB ĐH Quốc Gia Hà Nội 2007
[ 5 ] Ngôn ngữ lập trình Visual Basic , ĐH Bách Khoa Đà Nẵng
Tài liệu Tiếng Anh:
[ 7 ] Harri Holma and Antti Toskala, WCDMA for UMTS, John Wiley & Sons 2004.
[ 8 ] Keiji Tachikawa, WCDMA OBILE COMMUNICATIONS SYSTEM, John Wiley & Sons 2002.
PHỤ LỤC
Đoạn code chương trình mô phỏng :
1. Form chính
Private Sub Command1_Click()
cautrucmang.Show
End Sub
Private Sub Command2_Click()
THUTUC.Show
End Sub
Private Sub Command3_Click()
chuyendaomem.Show
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
2. Cấu trúc mạng
Private Sub Command1_Click()
roadto3g.Show
End Sub
Private Sub Command2_Click()
formchinh.Show
Unload Me
End Sub
Private Sub Form_Load()
Timer1.Interval = 500
End Sub
Private Sub Timer1_Timer()
Dim x As String
Dim y As String
x = Left(Text1.Text, 1)
y = Right(Text1.Text, Len(Text1.Text) - 1)
Text1.Text = y + x
End Sub
3.Road to 3G
Dim i As Integer
Private Sub Command1_Click()
cautrucmang.Show
Unload Me
End Sub
Private Sub Form_Load()
Timer1.Enabled = True
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
i = 0
End Sub
Private Sub Timer1_Timer()
i = i + 1
If i = 1 Then
Image1.Visible = True
ElseIf i = 2 Then
Image2.Visible = True
ElseIf i = 3 Then
Image3.Visible = True
ElseIf i = 4 Then
Image4.Visible = True
ElseIf i = 5 Then
Image1.Visible = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
i = 0
End If
End Sub
Private Sub Timer2_Timer()
Dim x As String
Dim y As String
'gán x = 1 ký t? d?u dòng van b?n
x = Left(Text1.Text, 1)
'gán y là ph?n còn l?i
y = Right(Text1.Text, Len(Text1.Text) - 1)
Text1.Text = y + x
End Sub
4. Chuyển giao mềm
Dim i As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Command3_Click()
formchinh.Show
Unload Me
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
'Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
Image10.Visible = False
Image11.Visible = False
Image12.Visible = False
Image13.Visible = False
Image14.Visible = False
Image15.Visible = False
Image16.Visible = False
Image17.Visible = False
Image18.Visible = False
Image19.Visible = False
Image20.Visible = False
Image21.Visible = False
i = 0
End Sub
Private Sub Picture1_Click()
End Sub
Private Sub Timer1_Timer()
i = i + 1
If i = 1 Then
Image18.Visible = True
Image6.Visible = False
Image14.Visible = False
Image21.Visible = False
Image1.Visible = True
Image7.Visible = True
ElseIf i = 2 Then
Image2.Visible = True
Image8.Visible = True
Image19.Visible = True
Image7.Visible = False
Image1.Visible = False
Image18.Visible = False
ElseIf i = 3 Then
Image9.Visible = True
Image3.Visible = True
Image11.Visible = True
Image18.Visible = True
Image21.Visible = True
Image15.Visible = True
Image2.Visible = False
Image8.Visible = False
Image19.Visible = False
ElseIf i = 4 Then
Image4.Visible = True
Image3.Visible = True
Image10.Visible = True
Image12.Visible = True
Image16.Visible = True
Image19.Visible = True
Image20.Visible = True
Image9.Visible = False
Image3.Visible = False
Image11.Visible = False
Image18.Visible = False
Image21.Visible = False
Image15.Visible = False
ElseIf i = 5 Then
Image5.Visible = True
Image13.Visible = True
Image17.Visible = True
Image20.Visible = True
Image4.Visible = False
Image3.Visible = False
Image10.Visible = False
Image12.Visible = False
Image16.Visible = False
Image19.Visible = False
ElseIf i = 6 Then
i = 0
Image6.Visible = True
Image14.Visible = True
Image21.Visible = True
Image5.Visible = False
Image13.Visible = False
Image17.Visible = False
Image20.Visible = False
End If
End Sub
Private Sub Timer2_Timer()
Dim x As String
Dim y As String
x = Left(Text1.Text, 1)
y = Right(Text1.Text, Len(Text1.Text) - 1)
Text1.Text = y + x
End Sub
5. Thủ tục
Option Explicit
Dim i As Integer
Dim h As Integer
Dim w As Integer
Dim u As Integer
Dim mo, no As Integer
Dim l, k, j As Integer
Dim ma, na As Integer
Dim mb, nb As Integer
Dim mc, nc As Integer
Dim md, nd As Integer
Dim mf, nf As Integer
Dim mi, ni As Integer
Dim mj, nj As Integer
Dim mk, nk As Integer
Dim ml, nl As Integer
Dim ms, ns As Integer
Dim mg, ng As Integer
Dim mh, nh As Integer
Dim mq, nq As Integer
Dim mw, nw As Integer
Dim mr, nr As Integer
Dim my, ny As Integer
Dim mu, nu As Integer
Dim th1 As Integer
Dim th2 As Integer
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim t4 As Integer
Dim t5 As Integer
Private x As Integer
Private y As Integer
Private z1 As Integer
Private z2 As Integer
Private z3 As Integer
Private z4 As Integer
Private z5 As Integer
Private z6 As Integer
Private z7 As Integer
Private z8 As Integer
Private z9 As Integer
Private z10 As Integer
Private z11 As Integer
Private z12 As Integer
Private z13 As Integer
Dim trangthai As Integer
Private Sub al2_Click(Index As Integer)
End Sub
Private Sub cmd3_Click()
formchinh.Show
formchinh.Enabled = True
THUTUC.Hide
THUTUC.Enabled = False
End Sub
Private Sub Command1_Click()
Timer12.Enabled = True
End Sub
Private Sub cmdtd_Click()
Dim i As Integer
trangthai = 1
Timer22.Enabled = True
Timer21.Enabled = False
img15.Visible = False
For i = 0 To 11
m7(i).Visible = False
Next i
img12(0).Visible = False
img12(1).Visible = False
Timer11.Enabled = False
Timer12.Enabled = False
Timer13.Enabled = False
For i = 0 To 1
al12(i).Visible = False
Next i
al11.Visible = False
al13.Visible = False
End Sub
Private Sub cmdth_Click()
Dim i As Integer
cmdtd.Enabled = False
For i = 0 To 1
img1(i).Visible = False
img2(i).Visible = False
img3(i).Visible = False
img4(i).Visible = False
img5(i).Visible = False
img6(i).Visible = False
img7(i).Visible = False
img8(i).Visible = False
img9(i).Visible = False
img10(i).Visible = False
img11(i).Visible = False
img12(i).Visible = False
Next i
img15.Visible = False
z13 = 0
z1 = 0
z2 = 0
z3 = 0
z4 = 0
z5 = 0
z6 = 0
z7 = 0
z8 = 0
z9 = 0
z10 = 0
z11 = 0
z12 = 0
w = 0
ma = 0
mb = 0
mc = 0
md = 0
mf = 0
nf = 0
mg = 0
mh = 0
ms = 0
mk = 0
ml = 0
mj = 0
mi = 0
i = 0
j = 0
k = 0
l = 0
h = 0
nk = 0
na = 0
nb = 0
nc = 0
nd = 0
ni = 0
nj = 0
nl = 0
ns = 0
ng = 0
nf = 0
th1 = 0
th2 = 0
mq = 0
nq = 0
mr = 0
nh = 0
nr = 0
mw = 0
nw = 0
mo = 0
no = 0
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer8.Enabled = False
Timer9.Enabled = False
Timer11.Enabled = False
Timer12.Enabled = False
Timer13.Enabled = False
Timer14.Enabled = False
Timer15.Enabled = False
Timer16.Enabled = False
Timer17.Enabled = False
Timer18.Enabled = False
Timer19.Enabled = False
Timer20.Enabled = False
Timer21.Enabled = False
Timer23.Enabled = False
Timer22.Enabled = False
Timer24.Enabled = False
al11.Visible = False
al12(0).Visible = False
al12(1).Visible = False
al13.Visible = False
al23.Visible = False
al21.Visible = False
al22(0).Visible = False
al22(1).Visible = False
For i = 0 To 2
m1(i).Visible = False
a1(i).Visible = False
a2(i).Visible = False
m11(i).Visible = False
m22(i).Visible = False
m23(i).Visible = False
Next i
For k = 0 To 5
m12(k).Visible = False
m13(k).Visible = False
m14(k).Visible = False
m15(k).Visible = False
m16(k).Visible = False
m21(k).Visible = False
m21(k).Visible = False
m24(k).Visible = False
m25(k).Visible = False
mn1(k).Visible = False
mn2(k).Visible = False
Next k
For j = 0 To 11
m7(j).Visible = False
m8(j).Visible = False
Next j
If opt(0).Value = True Then
Timer11.Enabled = True
Timer3.Enabled = True
C1.Enabled = True
C3.Enabled = False
End If
If opt(1).Value = True Then
Timer12.Enabled = True
Timer3.Enabled = True
C3.Enabled = True
C1.Enabled = True
End If
If opt(2).Value = True Then
Timer13.Enabled = True
Timer3.Enabled = True
C3.Enabled = True
C1.Enabled = False
End If
End Sub
Private Sub Form_Load()
img15.Visible = False
'Me.Height = 11010
'Me.Width = 15255
z13 = 0
z1 = 0
z2 = 0
z3 = 0
z4 = 0
z5 = 0
z6 = 0
z7 = 0
z8 = 0
z9 = 0
z10 = 0
z11 = 0
z12 = 0
z10 = 0
h = 0
w = 0
u = 0
mo = 0
no = 0
Timer1.Enabled = True
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer8.Enabled = False
Timer9.Enabled = False
Timer11.Enabled = False
Timer12.Enabled = False
Timer13.Enabled = False
Timer14.Enabled = False
Timer15.Enabled = False
Timer16.Enabled = False
Timer17.Enabled = False
Timer18.Enabled = False
Timer19.Enabled = False
Timer20.Enabled = False
Timer21.Enabled = False
Timer22.Enabled = False
Timer23.Enabled = False
Timer24.Enabled = False
al11.Visible = False
al12(0).Visible = False
al12(1).Visible = False
al13.Visible = False
al23.Visible = False
al21.Visible = False
al22(0).Visible = False
al22(1).Visible = False
For i = 0 To 1
img1(i).Visible = False
img2(i).Visible = False
img3(i).Visible = False
img4(i).Visible = False
img5(i).Visible = False
img6(i).Visible = False
img7(i).Visible = False
img8(i).Visible = False
img9(i).Visible = False
img10(i).Visible = False
img11(i).Visible = False
img12(i).Visible = False
Next i
mh = 0
mg = 0
nk = 0
For i = 0 To 2
m1(i).Visible = False
a1(i).Visible = False
a2(i).Visible = False
m11(i).Visible = False
m22(i).Visible = False
m23(i).Visible = False
Next i
For k = 0 To 5
m12(k).Visible = False
m13(k).Visible = False
m14(k).Visible = False
m15(k).Visible = False
m16(k).Visible = False
m21(k).Visible = False
m24(k).Visible = False
m25(k).Visible = False
mn1(k).Visible = False
mn2(k).Visible = False
Next k
For j = 0 To 11
m7(j).Visible = False
m8(j).Visible = False
Next j
opt(0).Value = True
End Sub
Private Sub lbl1_Click()
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'frmchinh.Show
'frmchinh.Enabled = True
Unload Me
End Sub
Private Sub Image10_Click()
End Sub
Private Sub Picture1_Click()
End Sub
Private Sub Timer1_Timer()
If l > 2 Then
For i = 0 To 2
a1(i).Visible = False
a2(i).Visible = False
l = 0
Next i
Exit Sub
End If
a1(l).Visible = True
a2(l).Visible = True
l = l + 1
End Sub
Private Sub Timer10_Timer()
Dim x As String
Dim y As String
'gán x = 1 ký t? d?u dòng van b?n
x = Left(Text1.Text, 1)
'gán y là ph?n còn l?i
y = Right(Text1.Text, Len(Text1.Text) - 1)
'Hi?n th? tr? l?i textbox theo th? t? ngu?c l?i.
Text1.Text = y + x
End Sub
Private Sub Timer11_Timer()
Select Case mj
Case 0: al11.Visible = False
mj = 1
Case 1: al11.Visible = True
mj = 0
End Select
End Sub
Private Sub Timer12_Timer()
Select Case mh
Case 0: al12(0).Visible = False
al12(1).Visible = True
mh = 1
Case 1: al12(0).Visible = True
al12(1).Visible = False
mh = 0
End Select
End Sub
Private Sub Timer13_Timer()
Select Case ml
Case 0: al13.Visible = False
ml = 1
Case 1: al13.Visible = True
ml = 0
End Select
End Sub
Private Sub Timer14_Timer()
Dim i As Integer
z7 = z7 + 1
If ms > 2 Then
For ns = 0 To 2
m22(ns).Visible = False
ms = 0
Next ns
Exit Sub
End If
m22(ms).Visible = True
ms = ms + 1
Select Case z7
Case 0:
img8(0).Visible = True
img8(1).Visible = False
Case 1:
img8(0).Visible = False
img8(1).Visible = True
Case 2:
img8(0).Visible = True
img8(1).Visible = False
Case 3:
img8(0).Visible = False
img8(1).Visible = True
Case 4:
img8(0).Visible = True
img8(1).Visible = False
Case 5:
img8(0).Visible = False
img8(1).Visible = True
End Select
If z7 = 5 Then
Timer18.Enabled = True
Timer14.Enabled = False
For i = 0 To 2
m22(i).Visible = False
Next i
img8(0).Visible = False
img8(1).Visible = False
End If
End Sub
Private Sub Timer15_Timer()
Select Case nj
Case 0: al21.Visible = False
nj = 1
Case 1: al21.Visible = True
nj = 0
End Select
End Sub
Private Sub Timer16_Timer()
Select Case mh
Case 0: al22(0).Visible = False
al22(1).Visible = True
mh = 1
Case 1: al22(0).Visible = True
al22(1).Visible = False
mh = 0
End Select
End Sub
Private Sub Timer17_Timer()
Select Case nk
Case 0: al23.Visible = False
nk = 1
Case 1: al23.Visible = True
nk = 0
End Select
End Sub
Private Sub Timer18_Timer()
Dim i As Integer
z8 = z8 + 1
If ml > 2 Then
For nl = 0 To 2
m23(nl).Visible = False
ml = 0
Next nl
Exit Sub
End If
m23(ml).Visible = True
ml = ml + 1
Select Case z8
Case 0:
img9(0).Visible = True
img9(1).Visible = False
Case 1:
img9(0).Visible = False
img9(1).Visible = True
Case 2:
img9(0).Visible = True
img9(1).Visible = False
Case 3:
img9(0).Visible = False
img9(1).Visible = True
Case 4:
img9(0).Visible = True
img9(1).Visible = False
Case 5:
img9(0).Visible = False
img9(1).Visible = True
End Select
If z8 = 5 Then
Timer19.Enabled = True
Timer18.Enabled = False
For i = 0 To 2
m23(i).Visible = False
Next i
img9(0).Visible = False
img9(1).Visible = False
End If
End Sub
Private Sub Timer19_Timer()
Dim i As Integer
z9 = z9 + 1
If mq > 5 Then
For nq = 0 To 5
m24(nq).Visible = False
mq = 0
Next nq
Exit Sub
End If
m24(mq).Visible = True
mq = mq + 1
Select Case z9
Case 0:
img10(0).Visible = True
img10(1).Visible = False
Case 1:
img10(0).Visible = False
img10(1).Visible = True
Case 2:
img10(0).Visible = True
img10(1).Visible = False
Case 3:
img10(0).Visible = False
img10(1).Visible = True
Case 4:
img10(0).Visible = True
img10(1).Visible = False
Case 5:
img10(0).Visible = False
img10(1).Visible = True
Case 6:
img10(0).Visible = True
img10(1).Visible = False
Case 7:
img10(0).Visible = False
img10(1).Visible = True
Case 8:
img10(0).Visible = True
img10(1).Visible = False
End Select
If z9 = 8 Then
Timer19.Enabled = False
Timer20.Enabled = True
Timer8.Enabled = False
img6(0).Visible = False
img6(1).Visible = False
For i = 0 To 5
m15(i).Visible = False
m24(i).Visible = False
Next i
img10(0).Visible = False
img10(1).Visible = False
End If
End Sub
Private Sub Timer20_Timer()
Dim i As Integer
z10 = z10 + 1
If mr > 5 Then
For nr = 0 To 5
m25(nr).Visible = False
m16(nr).Visible = False
mr = 0
Next nr
Exit Sub
End If
m25(mr).Visible = True
m16(mr).Visible = True
mr = mr + 1
Select Case z10
Case 0:
img11(0).Visible = True
img11(1).Visible = False
Case 1:
img11(0).Visible = False
img11(1).Visible = True
Case 2:
img11(0).Visible = True
img11(1).Visible = False
Case 3:
img11(0).Visible = False
img11(1).Visible = True
Case 4:
img11(0).Visible = True
img11(1).Visible = False
Case 5:
img11(0).Visible = False
img11(1).Visible = True
Case 6:
img11(0).Visible = True
img11(1).Visible = False
Case 7:
img11(0).Visible = False
img11(1).Visible = True
Case 8:
img11(0).Visible = True
img11(1).Visible = False
End Select
If z10 = 8 Then
Timer20.Enabled = False
Timer21.Enabled = True
Timer23.Enabled = True
cmdtd.Enabled = True
For i = 0 To 5
m25(i).Visible = False
m16(i).Visible = False
Next i
img11(0).Visible = False
img11(1).Visible = False
End If
End Sub
Private Sub Timer21_Timer()
If mw > 11 Then
For nw = 0 To 11
m7(nw).Visible = False
mw = 0
Next nw
Exit Sub
End If
m7(mw).Visible = True
mw = mw + 1
If z13 < 9 Then
z13 = z13 + 1
If u = 0 Then
img12(0).Visible = True
img12(1).Visible = False
u = 1
Else: img12(1).Visible = True
img12(0).Visible = False
u = 0
End If
End If
If z13 = 9 Then
img12(1).Visible = False
img12(0).Visible = False
End If
End Sub
Private Sub Timer22_Timer()
z11 = z11 + 1
If my > 5 Then
For ny = 0 To 5
mn1(ny).Visible = False
my = 0
Next ny
Exit Sub
End If
mn1(my).Visible = True
my = my + 1
If z11 = 8 Then
Timer22.Enabled = False
Timer24.Enabled = True
For i = 0 To 5
mn1(i).Visible = False
Next i
End If
End Sub
Private Sub Timer23_Timer()
If mu > 11 Then
For nu = 0 To 11
m8(nu).Visible = False
mu = 0
Next nu
Exit Sub
End If
m8(mu).Visible = True
mu = mu + 1
img15.Visible = True
End Sub
Private Sub Timer24_Timer()
Dim i As Integer
z12 = z12 + 1
If mo > 5 Then
For no = 0 To 5
mn2(no).Visible = False
mo = 0
Next no
Exit Sub
End If
mn2(mo).Visible = True
mo = mo + 1
If z12 = 8 Then
Timer23.Enabled = False
img15.Visible = False
For i = 0 To 11
m8(i).Visible = False
Next i
Timer24.Enabled = False
For i = 0 To 2
mn2(i).Visible = False
Next i
For i = 0 To 11
m8(i).Visible = False
Next i
Timer15.Enabled = False
Timer16.Enabled = False
Timer17.Enabled = False
For i = 0 To 1
al22(i).Visible = False
Next
al21.Visible = False
al23.Visible = False
End If
End Sub
Private Sub Timer3_Timer()
Dim k As Integer
z1 = z1 + 1
If ma > 2 Then
For na = 0 To 2
m1(na).Visible = False
ma = 0
Next na
Exit Sub
End If
m1(ma).Visible = True
ma = ma + 1
Select Case z1
Case 0:
img1(0).Visible = True
img1(1).Visible = False
Case 1:
img1(0).Visible = False
img1(1).Visible = True
Case 2:
img1(0).Visible = True
img1(1).Visible = False
Case 3:
img1(0).Visible = False
img1(1).Visible = True
Case 4:
img1(0).Visible = True
img1(1).Visible = False
Case 5:
img1(0).Visible = False
img1(1).Visible = True
End Select
If z1 = 5 Then
z1 = 0
ma = 0
Timer3.Enabled = False
Timer4.Enabled = True
For t1 = 0 To 2
m1(t1).Visible = False
Next t1
img1(0).Visible = False
img1(1).Visible = False
End If
End Sub
Private Sub Timer4_Timer()
Dim i As Integer
z2 = z2 + 1
If mb > 2 Then
For nb = 0 To 2
m11(nb).Visible = False
mb = 0
Next nb
Exit Sub
End If
m11(mb).Visible = True
mb = mb + 1
Select Case z2
Case 0:
img2(0).Visible = True
img2(1).Visible = False
Case 1:
img2(0).Visible = False
img2(1).Visible = True
Case 2:
img2(0).Visible = True
img2(1).Visible = False
Case 3:
img2(0).Visible = False
img2(1).Visible = True
Case 4:
img2(0).Visible = True
img2(1).Visible = False
Case 5:
img2(0).Visible = False
img2(1).Visible = True
End Select
If z2 = 5 Then
Timer5.Enabled = True
Timer4.Enabled = False
For i = 0 To 2
m11(i).Visible = False
Next i
img2(0).Visible = False
img2(1).Visible = False
End If
End Sub
Private Sub Timer5_Timer()
Dim i As Integer
z3 = z3 + 1
If mc > 5 Then
For nc = 0 To 5
m12(nc).Visible = False
mc = 0
Next nc
Exit Sub
End If
m12(mc).Visible = True
mc = mc + 1
Select Case z3
Case 0:
img3(0).Visible = True
img3(1).Visible = False
Case 1:
img3(0).Visible = False
img3(1).Visible = True
Case 2:
img3(0).Visible = True
img3(1).Visible = False
Case 3:
img3(0).Visible = False
img3(1).Visible = True
Case 4:
img3(0).Visible = True
img3(1).Visible = False
Case 5:
img3(0).Visible = False
img3(1).Visible = True
Case 6:
img3(0).Visible = True
img3(1).Visible = False
Case 7:
img3(0).Visible = False
img3(1).Visible = True
Case 8:
img3(0).Visible = True
img3(1).Visible = False
End Select
If z3 = 8 Then
Timer6.Enabled = True
Timer5.Enabled = False
For i = 0 To 5
m12(i).Visible = False
Next i
img3(0).Visible = False
img3(1).Visible = False
End If
End Sub
Private Sub Timer6_Timer()
Dim i As Integer
z4 = z4 + 1
If md > 5 Then
For nd = 0 To 5
m13(nd).Visible = False
md = 0
Next nd
Exit Sub
End If
m13(md).Visible = True
md = md + 1
Select Case z4
Case 0:
img4(0).Visible = True
img4(1).Visible = False
Case 1:
img4(0).Visible = False
img4(1).Visible = True
Case 2:
img4(0).Visible = True
img4(1).Visible = False
Case 3:
img4(0).Visible = False
img4(1).Visible = True
Case 4:
img4(0).Visible = True
img4(1).Visible = False
Case 5:
img4(0).Visible = False
img4(1).Visible = True
Case 6:
img4(0).Visible = True
img4(1).Visible = False
Case 7:
img4(0).Visible = False
img4(1).Visible = True
Case 8:
img4(0).Visible = True
img4(1).Visible = False
End Select
If z4 = 8 Then
Timer6.Enabled = False
Timer7.Enabled = True
For i = 0 To 5
m13(i).Visible = False
Next i
img4(0).Visible = False
img4(1).Visible = False
End If
End Sub
Private Sub Timer7_Timer()
Dim i As Integer
z5 = z5 + 1
If mf > 5 Then
For nf = 0 To 5
m14(nf).Visible = False
mf = 0
Next nf
Exit Sub
End If
m14(mf).Visible = True
mf = mf + 1
Select Case z5
Case 0:
img5(0).Visible = True
img5(1).Visible = False
Case 1:
img5(0).Visible = False
img5(1).Visible = True
Case 2:
img5(0).Visible = True
img5(1).Visible = False
Case 3:
img5(0).Visible = False
img5(1).Visible = True
Case 4:
img5(0).Visible = True
img5(1).Visible = False
Case 5:
img5(0).Visible = False
img5(1).Visible = True
Case 6:
img5(0).Visible = True
img5(1).Visible = False
Case 7:
img5(0).Visible = False
img5(1).Visible = True
Case 8:
img5(0).Visible = True
img5(1).Visible = False
End Select
If z5 = 8 Then
Timer7.Enabled = False
Timer8.Enabled = True
Timer9.Enabled = True
For i = 0 To 5
m14(i).Visible = False
Next i
img5(0).Visible = False
img5(1).Visible = False
End If
End Sub
Private Sub Timer8_Timer()
If mg > 5 Then
For ng = 0 To 5
m15(ng).Visible = False
mg = 0
Next ng
Exit Sub
End If
m15(mg).Visible = True
mg = mg + 1
If h = 0 Then
img6(0).Visible = True
img6(1).Visible = False
h = 1
Else: img6(1).Visible = True
img6(0).Visible = False
h = 0
End If
End Sub
Private Sub Timer9_Timer()
Dim i As Integer
z6 = z6 + 1
If mi > 5 Then
For ni = 0 To 5
m21(ni).Visible = False
mi = 0
Next ni
Exit Sub
End If
m21(mi).Visible = True
mi = mi + 1
Select Case z6
Case 0:
img7(0).Visible = True
img7(1).Visible = False
Case 1:
img7(0).Visible = False
img7(1).Visible = True
Case 2:
img7(0).Visible = True
img7(1).Visible = False
Case 3:
img7(0).Visible = False
img7(1).Visible = True
Case 4:
img7(0).Visible = True
img7(1).Visible = False
Case 5:
img7(0).Visible = False
img7(1).Visible = True
Case 6:
img7(0).Visible = True
img7(1).Visible = False
Case 7:
img7(0).Visible = False
img7(1).Visible = True
Case 8:
img7(0).Visible = True
img7(1).Visible = False
End Select
If z6 = 8 Then
If opt(0).Value = True Then
Timer15.Enabled = True
End If
If opt(1).Value = True Then
Timer16.Enabled = True
End If
If opt(2).Value = True Then
Timer17.Enabled = True
End If
Timer14.Enabled = True
Timer9.Enabled = False
For i = 0 To 5
m21(i).Visible = False
Next i
img7(0).Visible = False
img7(1).Visible = False
End If
End Sub