Chế độ này được sử dụng khi oxilo thực hiện các phép đo các thông số bằngcách so sánh tín hiệu đó với tín hiệu chuẩn thông qua dao động đồ litxagiu làmột đường cong khép kín.Đồng bộ: Có
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG 1: TỔNG QUAN VỀ OSCILLO VÀ PC OSCILLO 5
1.1 Giới thiệu chung 5
1.1.1 Oxilo tương tự 5 1.1.2 Oxilo điện tử số 10 1.2 Tổng quan về PC Oscillo 13
CHƯƠNG 2 GIỚI THIỆU CHUNG VỀ USB 17
2.1 Giới thiệu 17
2.2 Kiến trúc tổng quan của hệ thống USB 18
2.2.1 Host: 19 2.2.2 Thiết bị USB: 20 2.2.3 Mô hình Bus vật lý 21 2.2.4 Mô hình Bus logic 23 2.2.5 Mối quan hệ Client software và function 23 2.2.6 Luồng dữ liệu USB 24 2.3 Kiến trúc chi tiết 24
2.3.1 Dây cáp USB.24
2.3.2 USB Connecter 25
2.3.3 Đặc tính điện 25
2.3.4 Định nghĩa tốc độ 26
2.3.5 Giao thức USB 27
Trang 22.3.6 Các phương thức trao đổi dữ liệu.30
CHƯƠNG 3: PHẦN MỀM 38
3.1 Lý thuyết chung 38
3.1.1 Phương pháp xây dựng đường cong 38 3.1.2 Phân tích phổ tín hiệu 48 3.2 Phương Pháp khôi phục dạng tín hiệu và phân tích phổ 54
3.2.1 Phương pháp khôi phục dạng tín hiệu 54 3.2.2 Thuật toán phân tích phổ ( FFT cơ số 2) 71 CHƯƠNG 4: KẾT LUẬN 76
4.1 Độ chính xác 76
4.2 Hạn chế và kiến nghị 76
TÓM TẮT LUẬN VĂN 78
TÀI LIỆU THAM KHẢO 79
Trang 3LỜI NÓI ĐẦU
Trong những năm vừa qua, ngành Điện tử - Viễn thông đã góp một phầnkhông nhỏ vào công cuộc xây dựng và kiến thiết đất nước So với lịch sử pháttriển của ngành điện tử trên thế giới thì ngành điện tử của ta vẫn còn non trẻ
và chủ yếu là phân phối và gia công lắp ráp các sản.Tuy đã có các sản phẩmthiết kế song vẫn còn nhỏ, lẻ Để bắt kịp với sự phát triển của thế giới và đápứng nhu cầu thực tế chúng ta cần từng bước tự cường về công nghệ và tự chủ
về quy trình sản suất, xây dựng những nền tảng cơ bản, phát huy hết nguồnlực về con người
Trong điều kiện đất nước còn khó khăn, các trang thiết bị còn thiếu vìvậy việc thiết kế các công cụ phục vụ cho công tác nghiên cứu và đào tạo làcần thiết Việc trang bị lại các thiết bị phục vụ thí nghiệm sẽ giúp ích cho sinhviên có cơ hội tiếp xúc với thực tế để tự tin hơn khi bước vào môi trường làmviệc Một trong các công cụ về xử lí tín hiệu rất cần thiết cho ngành điện tử làmáy hiện sóng (Oscilloscope) Phần nhiều các máy này trong phòng thínghiệm hiện nay là các oscillo tương tự với màn hình hiện thị CRT Một sốphòng thí nghiệm mới đã có Oscillo số nhưng số lượng còn hạn chế Oscillo
số có những tính năng tốt hơn rất nhiều so với Oscillo tương tự như xử lí tínhiệu, lưu trữ các tín hiệu đã đo từng thời điểm quan sát, phân tích phổ, xử lí vàgia công tín hiệu (FFT,FIR…) nhưng giá thành còn rất cao Với mong muốn
có thể tạo ra một chiếc Oscillo số đa tính năng phục vụ một phần trong côngtác thực hành thí nghiệm trong trường và công tác nghiên cứu với chi phí nhỏ
Trang 4hơn rất nhiều… Đề tài “Thiết kế phần mềm thiết bị đo và hiển thị dạng sóng lên màn hình máy tính” được tôi chọn trong luận văn tốt nghiệp của mình.
Tôi xin chân thành cảm ơn TS.Phạm Văn Bình đã giúp tôi hoànthành luận văn này
Hà Nội, 11-2008
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ OSCILLO
VÀ PC OSCILLO 1.1 Giới thiệu chung
1.1.1 Oxilo tương tự.
1.1.1.1 Khái niệm
Oxilo là máy đo tín hiệu đa năng Oxilo là đọc tắt của:
+ Oscilloscope: Máy xem dạng sóng, hiện sóng
+ Oscillograph: Máy vẽ sóng, dao động kí
Giúp cho người đo vừa quan sát định tính được hình dạng của tín hiệu vừa
có thể cùng một lúc đo được nhiều thông số của tín hiệu vì vậy nên nó có thểthay thế được nhiều thiết bị đo các thông số riêng rẽ của tín hiệu
Trang 6+ Đo nhanh: Tiết kiệm được thời gian và tài chính
1.1.1.4 Sơ đồ khối tối thiểu cần có.
Hinh 1.1 Sơ đồ tối thiểu của một oxilo tương tự
Kênh Z: Tạo ra màn hình, bút ghi, lực Fz (mục đích: làm cho màn hình phátsáng)
Kênh Y: Là nơi đưa tín hiệu cần quan sát, đo đạc và dùng để điều khiển bútghi lên trên, xuống dưới nhờ lực Fy
Kênh X: Tạo ra lực Fx kéo bút ghi chuyển động theo phương ngang Yêucầu hàm Fx(t) phải là hàm tuyến tính theo thời gian nếu không sẽ gây ra hiệntượng méo dao động đồ
Nếu 3 kênh X, Y, Z được tạo ra bằng các mạch điện tử thì ta có oxilo điện
tử, còn nếu tạo ra từ năng lượng cơ thì ta có oxilo cơ trong nội dung của bản báocáo này ta chỉ tập trung vào oxilo điện tử
1.1.1.5 Sơ đồ khối tổng quát dạng của 1 oxilo tương tự 1 kênh.
Trong mục này chỉ giới thiệu khái quát về các phân hệ chính của 1 oxilotương tự 1 kênh Gồm có 4 phân hệ:
Trang 7Lưu ý: Điện áp cắt là điện áp một chiều đặt vào G và tại điện áp này không
có điện tử nào lọt qua lỗ của G để bắn lên màn hình
+ Hệ thống lái tia điện tử bằng điện áp
Bao gồm hai cặp tấm: Cặp tấm lái theo chiều ngang X1, X2 và cặp tấm láitheo chiều dọc Y1, Y2
Cặp tấm X1, X2 đặt song song nhau, cách nhau một khoảng dx và cùngvuông góc với mặt phẳng ngang Khi có điện áp từ đầu ra của khuếch đại đốixứng X đặt vào, do có sự chênh lệch điện áp giữa X1, X2 sẽ kéo bút ghi theophương ngang
Cặp tấm Y1, Y2 đặt song song nhau, cách nhau một khoảng dy và cùngsong song với mặt phẳng ngang Khi có điện áp từ đầu ra của khuếch đại đối
Trang 8xứng Y đặt vào (chính là điện áp của tín hiệu cần quan sát, đo đạc), do có sựchênh lệch điện áp giữa Y1, Y2 sẽ hình thành lực Fy kéo bút ghi theo đườngsáng dọc.
Bộ tạo tín hiệu có Tch để đánh dấu thời gian: Khối này thường là khối tựdao động đưa ra tín hiệu điều hoà hoặc xung vuông đều có chu kì chuẩn để đánhdấu thời gian
b, Phân hệ kênh Y.
Có nhiệm vụ đưa tín hiệu cần đo, cần quan sát vào nó để tạo ra lực Fy kéobút ghi lên trên hay xuống dưới tạo nên trục hàm số hay biên độ
Các khối chức năng:
Hinh 1.2 Sơ đồ khối chức năng phân hệ kênh Y
Khối chuẩn biên độ có tác dụng chuẩn lại thang khắc độ của chuyển mạchphân áp Y trước khi oxilo thực hiện phép đo biên độ điện áp của tín hiệu cần đo.Khối cáp đo: Là 1 cấu kiện chuẩn, trên đó có bộ chia cáp theo 2 thang1:10 và 1:1 nếu để thang 1:10 thì kết quả đọc ra trên oxilo phải x10
Trang 9Khối mạch vào và tiền khuếch đại Y.
+ Mạch vào thường là 1 tầng khuếch đại có hồi tiếp âm lớn, thường hệ sốkhuếch đại mạch vào 1 (để mạch vào có Zvào lớn, Zra nhỏ) Mạch vào đóng
vai trò tầng đệm, thực hiện phối hợp trở kháng giữa mạch cần đo và oxilo
+ Tầng tiền khuếch đại Y đảm bảo hệ số khuếch đại đủ lớn đồng thời phảiđảm bảo dải thông của kênh Y
Dây trễ: Là chuỗi các mạch LC mắc song song, liên tiếp nhau Các LC này
có thể được tạo từ các phần tử thụ động hay tích cực
Tầng khuếch đại Y đối xứng: Tạo ra 2 điện áp ngược pha nhau đưa vào 2tấm lái tia Y1, Y2 làm cho độ nhạy của cặp tấm (hay của kênh Y) tăng lên gấpđôi
* Quét đợi: Là tín hiệu xung răng cưa chỉ được tạo ra khi trên kênh Y tồntại xung hay nói cách khác đầu vào Y là tín hiệu xung
+ Quét X ngoài:
Khi đó để quét X cần phải từ ngoài oxilo đến đầu vào X, qua chuyển mạchphân áp X, mạch vào và tiền khuếch đại X, khuếch đại đối xứng X, vào cặp láitia X1, X2
Trang 10Chế độ này được sử dụng khi oxilo thực hiện các phép đo các thông số bằngcách so sánh tín hiệu đó với tín hiệu chuẩn thông qua dao động đồ litxagiu (làmột đường cong khép kín).
Đồng bộ: Có ba chế độ đồng bộ
+ Đồng bộ ngoài: Tín hiệu đồng bộ đưa vào điều khiển đồng bộ được lấy
từ một nguồn ngoài oxilo, thường để đồng bộ tín hiệu xung, dao động đồ của tínhiệu có độ rộng hẹp và có chu kỳ dài
+ Đồng bộ trong: Tín hiệu đồng bộ đưa xuống được lấy từ Uy (lấy 1 phầntín hiệu Uy cần quan sát, đo đạc) Được sử dụng để đồng bộ dao động đồ trênmàn hình khi tín hiệu vào Uy là tương tự hay là xung vuông đều
+ Đồng bộ 50Hz: Tín hiệu đồng bộ được lấy từ một cuộn thứ cấp của biến
áp nguồn nuôi oxilo Thường để đồng bộ các tín hiệu vào là điều hoà có tần sốthấp
Ngoài ra còn có thể điều khiển đồng bộ bằng điện áp 1 chiều
Trang 11Tạo được hình ảnh dao động đồ tốt hơn, tương phản hơn loại oxilo tươngtự.
Đơn giản hơn trong sử dụng, vận hành
Có thể truyền trực tiếp số liệu của tín hiệu cần quan sát dưới dạng số, ghéptrực tiếp với máy tính hay được xử lí trong oxilo
1.1.2.2 Sơ đồ khối cấu tạo của oxilo số (dạng có nhớ).
H1.3 Cấu tạo oxilo số có nhớ
Chuyển mạch S là đồng chỉnh (cùng ở vị trí 1 hay 2)
+ Khi chuyển mạch S ở vị trí 1 thì oxilo làm việc như một oxilo đa năngbình thường
+ Khi chuyển mạch S ở vị trí 2 thì oxilo làm việc như là một oxilo có nhớ
số Điện áp tín hiệu cần quan sát đưa vào đầu vào Y, tới bộ biến đổi tương tự
-Số ADC Tại thời điểm đó (t1), khối điều khiển gửi một lệnh tới đầu vào để điềukhiển bộ ADC và khởi động quá trình biến đổi Kết quả là điện áp tín hiệu được
số hóa, có nghĩa là bộ biến đổi ADC lấy mẫu dạng tín hiệu ở nhiều điểm và biến
Trang 12đổi giá trị tức thời của biên độ tại mỗi thời điểm thành mã nhị phân tỉ lệ với biên
độ đó Tại thời điểm kết thúc quá trình biến đổi, bộ ADC gửi tín hiệu kết thúc tới
bộ điều khiển
Mỗi số nhị phân được chuyển tới bộ nhớ và được nhớ ở vị trí ô nhớ riêngbiệt Bởi vì đây là bộ nhớ không linh hoạt (cố định) nên nó có thể lưu trữ lượngthông tin lớn các số nhị phân với bất kì độ dài thời gian nào Khi cần thiết, mộtlệnh từ khối điều khiển có thể làm cho các số nhị phân này được sắp xếp theochuỗi theo thứ tự đã xác định và được đưa tới bộ chuyển đổi DAC Bộ biến đổi
số - tương tự DAC sẽ biến đổi giá trị nhị phân thành điện áp tương tự, và điện ápnày được đưa qua bộ khuếch đại Y và tới cặp phiến làm lệch Y của ống tia điệntử
Do bộ nhớ được liên tiếp quét nhiều lần trong 1 giây nên màn hình đượcphát sáng liên tục và hiển lên dạng sóng là hình vẽ các điểm sáng, biểu thị dạngsóng cần quan sát
Để đạt được một đường sáng liên tục còn có thêm 1 mạch nội suy (làmmượt) giữa bộ DAC và bộ khuếch đại Y
Một nhược điểm của oxilo có nhớ là dải tần bị hạn chế, do tốc độ biến đổicủa bộ ADC thấp (thông thường hiện nay, oxilo có nhớ số có dải tần 1-10 MHz).Gần đây, các oxilo có nhớ số có dải tần rộng được phát triển nhờ có cài đặtmicroprocessor, các bộ biến đổi ADC có tốc độ nhanh hơn, kĩ thuật số hoá mớihơn, cách nội suy và phương pháp thể hiện tín hiệu
Sơ đồ khối một oxilo có nhớ khác
Trang 13Hinh 1.3 Sơ đồ khối oscillo khác
Sơ đồ này khác sơ đồ trên ở chỗ có bộ dao động quét thật sự là bộ biến đổiDAC, kênh này được điều khiển từ số liệu của MP Đầu ra của bộ DAC tạo rađiện áp ra nhảy bậc, sao cho sự nhảy bậc thang không quá khác biệt so với điện
áp bậc thang được quét từ bộ dao động quét tương tự
Với DAC loại 10 bit, số bước nhảy là 210 = 1024 Toàn bộ điện áp ra đượcchia thành 1023 bước riêng biệt và sự lệch ngang của tia điện tử thực tế là tỉ lệtheo thời gian Tốc độ biến đổi DAC và bộ điều khiển quyết định tốc độ quét cựcđại Tốc độ quét có thể được điều chỉnh bằng số đến đầu vào số của bộ DAC.Còn tổ hợp các bộ phận phía trên gồm: ADC, bộ nhớ, DAC của kênh Y chophép khả năng thay đổi độ trễ của tín hiệu vào hệ thống làm lệch Y trong mộtgiới hạn rộng, đồng thời nó có thể kết hợp được với DAC của kênh X , như vậyđảm bảo đồng bộ chính xác
1.2 Tổng quan về PC Oscillo
Đây là một loại oscillo được thiết kế đặc biệt so với các cấu hình oscillothông thường Nó sử dụng một mạch xử lí tín hiệu đầu vào và gửi các thông sốtín hiệu thô như (tần số, biên độ, ) lên trên PC thông qua một khối mạch giao
Trang 14tiếp thường là RS232 hoặc USB Các thông số tín hiệu sẽ được người sử dụngtương tác và giao tiếp thông qua một software trên PC để quan sát Nhờ vào đặctính đó mà loại hình oscillo này rất khả chuyển và có thể phát triển một cách linhhoạt thành một thiết bị đa năng ứng dụng cho nhiều ngành liên quan đến phântích và xử lí tín hiệu.
Một chiếc PC oscillo có thể có chức năng của một chiếc máy phân tích phổ(Spectrum Analyzer) hay logic Analyzer với số bit không hạn chế, Data recodervới số đầu vào rất lớn giúp ích cho việc phân tích nhiều tín hiệu một lúc trên mànhình quan sát Đó là những tính năng ưu việt của PC oscillo so với các loạiOscillo số thông thường Có thể nói PC oscillo là một chiếc máy xử lí tín hiệu đanăng trên một cấu hình thống nhất (All in One)
Sơ đồ khối của PC oscillo có nhiều kiểu khác nhau tuỳ theo các hãng sảnxuất Nhưng quan trọng core hardware lựa chọn của các hãng Do phải sử dụngADC tốc độ cao để xử lí tần số cao nên đòi hỏi Core phải đủ mạnh thường có haiphương án để lựa chọn core : Sử dụng MCS 16-32bit hoặc CPLD tốc độ từ40MIPS trở lên kết hợp với giao tiếp RAM ngoài lưu trữ số liệu xử lí Sử dụngFPGA (Altera hoặc Xilinx) Thành phần giao tiếp thường dùng kết hợp với cácMCU có thành phần giao tiếp USB full-speed hoặc RS232
Phần chung của các hãng là thành phần xử lí tín hiệu vào khối Analog In vàADC Do đó ta có xác định sơ đồ khối của một PC oscillo như sau:
Trang 15Hình 1.4 Sơ đồ khối PC oscillo
Ta có thể quan sát một sơ đồ khối, mạch và software của một sản phẩmthương mại Bitscope:
Trang 16Hình 1.5 Sơ đồ khối mạch của một sản phẩm thương mại Bitscope
Trang 17CHƯƠNG 2 GIỚI THIỆU CHUNG VỀ USB
2.1 Giới thiệu.
USB (Universal Serial Bus – Bus truyền đa năng): Là 1 chuẩn kết nối ngoại
vi như chuột, bàn phím, camera, ổ đĩa đến PC Với những tính năng cực kì hữuích đã thay thế hầu hết các loại giao diện chuẩn thường sử dụng khác (COM,LPT, IDE ) USB có các tính năng nổi bật sau:
Đầu tiên USB thay thế tất cả các loại đầu nối cổng song song và nối tiếpkhác với một đầu cắm chuẩn và kết hợp cổng
Với PC kèm theo USB và ngoại vi bạn chỉ cần cắm chúng và bật chúng lên.USB thực hiện mọi quá trình tự động
USB là thiết bị thay nóng, không cần bật tắt máy khi cắm hay rút thiết bịUSB
USB hỗ trợ cắm nhiều thiết bị trong cùng một lúc
Một tiện ích khác của USB là cung cấp điện cho nhiều thiết bị ngoại vi.USB khiến PC tự động phát hiện công suất yêu cầu và cung cấp cho thiết bị
* USB có 3 phiên bản chuẩn:
USB 1.1 (1995) định nghĩa hai tốc độ 12Mbps (full speed) và 1.5Mbps (low
speed) và hai dạng đầu nối Series A và Series B
USB 2.0 (5-2000) định nghĩa 3 tốc độ 480Mbps (high speed), 12Mbps (full
speed) và 1.5Mbps (low speed) Nó hoàn toàn tương thích ngược với USB 1.1
USB 3.0 (2008) về mặt lý thuyết tốc độ có thể gấp 10 so với USB 2.0 vận
hành trong chế độ high speed, có nghĩa là tốc độ định nghĩa là 4800Mbps (Superspeed) Tuy nhiên trong thực tế thì tốc độ của USB 3.0 chỉ đạt được 2400Mbps
Trang 182.2 Kiến trúc tổng quan của hệ thống USB.
USB là loại bus hỗ trợ kết nối để trao đổi dữ liệu giữa máy chủ và các thiết
bị ngoại vi Các thiết bị ngoại vi cùng chia sẻ một băng thông USB thông quaviệc phân định công việc của host và giao thức thẻ bài Loại bus này cho phépthiết bị ngoại vi kết nối vào, đặt cấu hình, sử dụng và đóng kết nối trong khi host
và thiết bị ngoại vi vẫn hoạt động
Hệ thống USB gồm 3 thành phần sau:
USB interconnect: Tập hợp các giao thức cho phép thiết bị USB kết nối và
giao tiếp với host
Thiết bị USB: Thiết bị có giao diện USB (cổng USB)
Host: PC có cổng USB.
Hình2.1 Mô hình truyền dữ liệu trong hệ thống USB
Trên hình vẽ ta thấy việc truyền dữ liệu giữa host và một thiết bị USB được
Trang 19Lớp Thiết bị USB (USB Device Layer) gồm có Phần mềm hệ thống USB (USBSystem SW) có chức năng thực hiện những thao tác USB tổng quát (như các yêucầu, kiểu truyền) với thiết bị Lớp Function (Function Layer) cung cấp thêmnhững khả năng cho host giao tiếp với thiết bị qua một lớp Phần mềm client(Client SW) tương ứng.Hai lớp Thiết bị và Function giao tiếp với phần thiết bịvật lý tương ứng qua các kết nối logic và sử dụng lớp Giao tiếp Bus USB để thựchiện việc truyền dữ liệu.
2.2.1 Host:
Bao gồm các thành phần sau:
Client SW: Xử lý dữ liệu nhận được từ Function hoặc gửi dữ liệu đến các
Function thông qua các gói tin yêu cầu IRP (I/O Request Packet) với giao diệnUSB Driver
USB System SW (bao gồm: USB driver, Host Controller Driver and Host
software)
USB driver: Chuyển đổi dữ liệu trong các gói IRP nhận được từ lớp trên rồi
truyển xuống Host Controller Driver thích hợp
Host Controller Driver: chuyển đổi dữ liệu nhận được từ USB Driver và tổ
chức chúng để USB Host Controller truyền đi
USB host controller: Truyền dữ liệu nhận được từ lớp trên lên Bus
Trang 20
Hình 2.2 Các thành phần của Host
2.2.2 Thiết bị USB:
Bao gồm các thành phần sau:
USB Bus Interface: Giao diện USB Bus (nhận luồng dữ liệu thực tế từ
USB Host Controller gửi sang)
USB Logical Device: Là một thiết bị USB logic cung cấp một Function.
Function: Chức năng của một thiết bị USB
Trang 21
Hình 2.3 Các thành phần của thiết bị USB
Các thiết bị USB cung cấp các chức năng cho host Các chức năng này rất
đa dạng nhưng chúng đều có chung một giao diện cơ bản với host Điều này chophép host quản lý tất cả các thiết bị USB với cùng một cách
Để giúp host trong việc xác nhận và cấu hình thiết bị USB, mỗi một thiết bịmang các thông tin mô tả về cấu hình Một số thông tin chung cho tất cả các thiết
bị, còn các thông tin khác được cung cấp riêng bởi thiết bị
2.2.3 Mô hình Bus vật lý.
Các thiết bị USB đều được kết nối với host qua mô hình mạng xếp tầngngôi sao (tiered star topology) để thực hiện thực hiện kết nối giữa các hub và cácfunction Mỗi hub đặt tại trung tâm của mỗi ngôi sao, mỗi đoạn dây sẽ nối điểm-đến-điểm giữa hub và hub khác hoặc nối xuống function đặt ở tầng tiếp theo
Do có mối quan hệ về thời gian (timing constraints), mô hình chỉ giới hạn ở
7 tầng Host nằm một mình ở tầng 1 (lưu ý: chỉ có một host trong một hệ thốngUSB) Các tầng từ 2 - 6 có thể có cả hub hoặc function Một thiết bị phức hợp
Trang 22(Compound Device) là thiết bị có cả hub và function chiếm hai tầng vì vậy nókhông thể đặt ở tầng 7 do chỉ cho phép function ở tầng 7
Hình2.4 Mô hình Bus vật lý
Trang 232.2.4 Mô hình Bus logic.
Khi một thiết bị vật lý được cắm vào USB trong mạng xếp tầng ngôi sao,host sẽ giao tiếp với mỗi thiết bị như là chính thiết bị được kết nối trực tiếp đếnroot hub Mô hình logic:
Hình 2.5 Mô hình Bus logic
2.2.5 Mối quan hệ Client software và function.
Theo mô hình logical và vật lý của USB, các thiết bị USB cùng chia sẻchung bus, tuy nhiên client software chỉ liên hệ với một USB function duy nhất.Client software phải sử dụng giao diện chương trình phần mềm USB để liên hệvới các function Trong suốt quá trình vận hành, client software độc lập đối vớicác thiết bị khác có thể được cắm vào USB Điều này cho phép người thiết kếthiết bị và client software tập trung vào thiết kế chi tiết phần cứng và phần mềmcho Function
Trang 24
Hình 2.6 Mối quan hệ giữa ClientSW – Function
2.2.6 Luồng dữ liệu USB.
USB cung cấp một dịch vụ giao tiếp giữa phần mềm của host và USBfunction Mỗi một luồng giao tiếp được kết thúc tại một endpoint trên thiết bị.Endpoint dùng để xác định đích đến của luồng dữ liệu từ ClienSW
Hình 2.7 Luồng dữ liệu USB2.3 Kiến trúc chi tiết.
2.3.1 Dây cáp USB.
USB sử dụng dây cáp 4 sợi: 5V nguồn và đất, hai dây tín hiệu (D+ và D-)
Hình 2.8 Cấu trúc cáp USB
Trang 25
2.3.2 USB Connecter.
USB định nghĩa 4 loại connector:
Series A: đầu cắm hình chữ nhật (15.7mm x 7.5 mm) và luôn luôn hướng
đến host (upstream)
Series B: đầu cắm gần hình vuông có vạc góc (11.5 mm x 10.5mm) và luôn
luôn hướng đến thiết bị (downstream)
Series mini-B: đầu cắm gần hình chữ nhật nhỏ (6.8 mm x 10.5mm) và luôn
luôn hướng đến thiết bị
Captive cable assembly: là bất kì đầu cắm phi chuẩn nào nối đến thiết bị nó
phải sử dụng một phía đầu nối Series A cắm vào host hoặc hub
Trang 26‘0’ thì ngược lại, D- lớn hơn 2.8V và D+ nhỏ hơn 0.3V cũng với các điện trở1.5K.
+ Bên nhận (host hoặc hub): Mức logic ‘1’ là D+ lớn hơn 200mV so vớiD- và mức logic ‘0’ là D+ nhỏ hơn 200mV so với D-.Cực tính của tín hiệu có thểđược đảo phụ thuộc vào tốc độ của bus
Bộ truyền dẫn USB sẽ truyền cả mức logic và tín hiệu đơn Như vậy, tìnhtrạng bus được xác định bởi tín hiệu đơn trên dây D+, D- hoặc cả 2 dây Bus củachế độ low-speed và full-speed có trở kháng 90 Ω ± 15%, điều này rất quan trọngkhi lựa chọn điện trở nối tiếp cho D+ và D- Chế độ high-speed sử dụng dòngkhông đổi 17.78 mA cho tín hiệu để giảm nhiễu
2.3.4 Định nghĩa tốc độ
Thiết bị USB phải tự thiết lập tốc độ bằng cách nối dây D+ hoặc D- lên3.3V qua một điện trở kéo Thiết bị được thiết lập ở full-speed bằng cách nối dâyqua 1 điện trở kéo từ D+ lên nguồn (Hình 2.10).Điện trở kéo đó cũng được hosthoặc hub sử dụng để nhận biết xem thiết bị có được cắm vào cổng của nó không,nếu không có điện trở kéo, USB mặc định không có thiết bị nào được kết nối vớibus Ngược lại, thiết bị được thiết lập ở low-speed bằng cách nối dây qua 1 điệntrở kéo từ D- lên nguồn (xem Hình 2.10)
Trang 27Hình 2.10 Thiết lập chế độ Fullspeed và lowspeed
Thiết bị high-speed được khởi động như thiết bị full-speed Sau khi đượccắm vào, nó sẽ thiết lập chế độ full-speed khi reset rồi mới thiết lập tốc độ high-speed nếu được hub hỗ trợ Nếu thiết bị hoạt động ở chế độ high-speed, điện trởkéo sẽ được loại bỏ, trả lại sự cân bằng cho đường dây
2.3.5 Giao thức USB.
USB là một bus hỏi vòng (polled bus), Host Controller sẽ khởi tạo tất cả các
dữ liệu giao dịch (transaction) Phần lớn các giao dịch liên quan đến 3 gói tin:
Token packet (gói đánh dấu): Mô tả loại và hướng của giao dịch (host
muốn gửi hay nhận dữ liệu), địa chỉ thiết bị và số endpoint
Data packet: gói dữ liệu hoặc gói no data (dữ liệu trống).
Status packet: thông báo về tình trạng của giao dịch (thành công, bị gián
đoạn hoặc từ chối nhận dữ liệu)
2.3.5.1 Các trường của gói tin USB.
Các bit trọng số thấp (LSB) của dữ liệu được truyền trước Một gói tin USBgồm các trường sau:
Trang 28Sync (8 bit): Tất cả các gói tin phải bắt đầu bằng trường sync Nó có độ dài
là 8 bit, được sử dụng để đồng bộ giữa bên nhận và bên truyền, 2 bit cuối xácđịnh nơi mà trường PID bắt đầu
PID (8 bit): Packet ID (nhận dạng gói tin) dùng để xác định kiểu gói tin
được truyền Bảng sau liệt kê các kiểu gói tin giao dịch:
Bảng trên, trường PID có 4 bit.Tuy nhiên để chắc chắn nó đượcnhận đúng, 4 bit nữa được bổ sung và giá trị lặp lại của 4 bit đầu Minh hoạ:
ADDR (8 bit): Trường địa chỉ xác định thiết bị mà gói tin được gửi đến.
Trường này có 7 bit (Addr 1 - 7) cho phép hỗ trợ 127 thiết bị Addr 0 không sửdụng, bất cứ thiết bị nào mà chưa được gán địa chỉ thì gói tin gửi tới thiết bị đó
Trang 29CRC (5 bit hay 16 bit): Cyclic Redundancy Checks mã vòng kiểm tra dư
vòng dùng để phát hiện và sửa lỗi Với các gói tin token thì nó có 5 bits CRC cònvới các gói tin data thì trường này là 16 bits
EOP: Trường kết thúc của gói tin.
2.3.5.2 Các loại gói tin USB.
USB có bốn loại gói tin khác nhau (phân biệt chúng dựa vào trường PID):Gói tin token chỉ ra kiểu trao đổi dữ liệu.Gói tin data chứa dữ liệu cần traođổi.Gói tin bắt tay(handshake) dùng để xác nhận đã nhận thành công dữ liệu haybáo lỗi trong quá trình truyền Cuối cùng là gói tin SOF (Start Of Frame) xácđịnh điểm bắt đầu của khung truyền mới
Token packets: Có ba loại gói tin kiểu này:
In token: Thông báo cho Thiết bị USB rằng host muốn đọc dữ liệu.
Out token: thông báo cho Thiết bị USB rằng host muốn gửi dữ liệu.
Setup token: Sử dụng để bắt đầu quá trình truyền CONTROL.
Định dạng của token packets như sau:
Data packets: Có hai loại gói tin data, mỗi gói tin có khả năng truyền từ 0
Kích cỡ tối đa dữ liệu truyền đi của chế độ low speed là 8 bytes
Kích cỡ tối đa dữ liệu truyền đi của chế độ full speed là 1023 bytes
Trang 30Kích cỡ tối đa dữ liệu truyền đi của chế độ high speed là 1024 bytes Địnhdạng của Data packets như sau:
Handshake packets: Có ba loại gói tin kiểu này:
ACK - Đã nhận gói tin thành công
NAK - Thông báo cho thiết bị biết tạm thời không thể gửi hay nhận dữ liệu STALL - Thiết bị phát hiện dữ liệu bị lỗi và yêu cầu host truyền lại
Start of Frame packets (SOF): Gói tin có 11 bits và được host gửi tới thiết
bị cứ sau 1ms ± 500ns Gói này được gửi dự báo trên bus để duy trì hoạt độngcủa Bus nhằm ngăn chặn việc Bus chuyển sang chế độ chờ khi dữ liệu bị mấttrong quá trình truyền:
2.3.6 Các phương thức trao đổi dữ liệu.
Trong giao thức USB gồm có bốn phương thức trao đổi dữ liệu giữa cácthiết bị và host Mỗt pipe chỉ hỗ trợ một trong bốn kiểu truyền sau tại một thờiđiểm:
Control Transfer (Truyền điều khiển): Được dùng để cấu hình một thiết bị
và có thể sử dụng cho các mục đích khác như điều khiển các pipe khác trongthiết bị
Trang 31Bulk Data Transfer (Truyền dữ liệu trọng tải lớn): Nhận hoặc gửi một
lượng số liệu lớn, theo khối (burst) mà không có giới hạn thời gian truyền(truyền trong bao lâu cũng được miễn sao là đến được đích)
Interrupt Data Transfers (Truyền dữ liệu gián đoạn): Được sử dụng cho dữ
liệu cần nhận đúng thời điểm và có độ tin cậy Ví dụ: chuột, game pad…
Isochoronous Data Transfers (truyền dữ liệu thời gian thực): Giữ và dàn
xếp trước (prenegotiated) một số băng thông USB với một hệ thống phân phátngầm thỏa thuận trước (prenegotiated delivery latency) Dữ liệu được truyền liêntục và có thời gian thực trong quá trình tạo ra, phân phát và tiêu thụ Ví dụ: Dữliệu audio, video…
2.3.6.1 Control transfer.
Truyền CONTROL được sử dụng để ra lệnh và điều khiển trạng thái củathiết bị.Chúng ta có thể dễ dàng cài đặt thiết bị USB với các hàm khởi tạo nhờ sửdụng truyền CONTROL Các gói tin ở dạng chuẩn và tuỳ theo từng tốc độ màkích thước các gói tin khác nhau: ở low-speed là 8 byte, ở full-speed là 64 byte,còn ở high-speed là 8, 16, 32, hoặc 64 byte
Truyền CONTROL hoạt động theo 3 giai đoạn:
Setup stage: Dùng để gửi yêu cầu với 3 gói tin được gửi:
Hình 2.11 Các bước truyền điều khiển
Trang 32Trước tiên, host gửi token packet bao gồm địa chỉ thiết bị và số Endpoint.Sau đó data packet được gửi với kiểu PID của DATA0 và bao gồm 1 setuppacket mô tả chi tiết của yêu cầu Function nhận dữ liệu, kiểm tra CRC, nếuđúng sẽ gửi handshake packet là ACK Nếu data Packet có lỗi, function sẽ bỏqua mà ko gửi lại handshake packet.
Data stage: Có hướng truyền IN hoặc OUT Setup packet sẽ xác định tổng
số dữ liệu được truyền trong giai đoạn này Nếu dữ liệu vượt quá kích thước góitin lớn nhất, nó sẽ được chia thành các gói tin bằng với gói tin có kích thước lớn
nhất, trừ gói tin cuối có thể bằng hoặc nhỏ hơn Data stage có 2 hướng truyền dữ
liệu:
IN: Khi host đã sẵn sàng nhận dữ liệu, nó gửi một IN token packet.
Function nhận IN token packet, nếu có lỗi sẽ bỏ qua Nếu không có lỗi function
sẽ truyền data packet bao gồm dữ liệu điều khiển được truyền, gói STALL khi cólỗi dữ liệu hoặc gói NAK khi bộ đệm của Endpoint trống (không có dữ liệu đểtruyền) Host nhận dữ liệu, nếu đúng sẽ gửi lại ACK, có lỗi sẽ bỏ qua
Hình 2.12 Truyền IN data stage
OUT: Khi host muốn gửi dữ liệu điều khiển đến thiết bị, nó gửi một OUT
Trang 33xử lý gói tin trước đó, function sẽ gứi lại NAK Nếu Endpoint có lỗi thì function gửi lại STALL.
Hình 2.13 Truyền OUT data stage
Status stage: Báo cáo tình trạng của toàn bộ các yêu cầu và cũng có 2
hướng truyền Chú ý: Các báo cáo luôn được gửi bởi host
IN: Nếu host gửi IN token trong giai đoạn data stage, sau đó host phải biết
dữ liệu được nhận thành công (do khi truyền IN token bị lỗi thì function sẽ bỏqua) Việc này được host thực hiện bằng cách gửi OUT token theo sau bởi gói
dữ liệu gồm một dãy toàn số 0 Function sẽ trả lời qua handshake packet: ACKxác định function đã nhận thành công yêu cầu và sẵn sàng nhận yêu cầu tiếptheo, STALL: Nếu có lỗi trong quá trình xử lý yêu cầu, NAK: Nếu function đangbận và để thong báo cho host truyền lại status stage
Hình 2.14 Truyền IN status stage
Trang 34OUT: Nếu host gửi OUT token trong giai đoạn data stage, để biết function
có nhận được thành công hay không host sẽ gửi gói tin IN token, function sẽ báo
dữ liệu được nhận thành công OUT token bằng cách gửi một gói toàn số 0 để trảlời IN token Tuy nhiên, nếu có lỗi, nó sẽ gửi STALL hoặc nếu đang bận xử lý
dữ liệu, nó sẽ gửi NAK yêu cầu host lặp lại status stage
Hình 2.15 Truyền OUT status stage
2.3.6.2 Bulk transfer.
Bulk transfer được sử dụng cho dữ liệu trọng tải lớn, ví dụ: một tài liệuđược gửi vào máy in hoặc ảnh scan tạo ra từ máy quét Truyền BULK cho phépsửa lỗi dùng mã CRC 16 trong data packet và có cơ chế phát hiện lỗi / truyền lại,đảm bảo chắc chắn dữ liệu được truyền và nhận không có lỗi Truyền BULK sẽ
sử dụng khoảng băng thông dư trên bus sau khi tất cả các kiểu truyền khác đượcdùng Nếu bus đang bận truyền dữ liệu ISOCHRONOUS và/hoặc INTERRUPTthì dữ liệu BULK sẽ được truyền sau (mức ưu tiên kém nhất) Do dó, truyềnBULK được sử dụng trong trường hợp không yêu cầu thời gian thực và băngthông truyền
Truyền BULK chỉ được hỗ trợ ở full-speed và high-speed Đối vớiEndpoint full-speed: Gói tin lớn nhất có thể dài 8, 16, 32 hoặc 64 byte Còn
Trang 35BULK IN: Khi host sẵn sàng nhận BULK data, nó gửi IN token Nếu
function nhận IN token có lỗi, nó sẽ bỏ qua Nếu token không có lỗi, function sẽthực hiện truyền data packet chứa BULK data, hoặc gửi STALL khi Endpoint cólỗi, hay gửi NAK xác định bộ đệm của Endpoint không có dữ liệu để truyền
Hình 2.16 Truyền BULK IN
BULK OUT: Khi host muốn truyền một BULK data packet, nó gửi OUT
token, tiếp theo là data packet chứa BULK data Nếu OUT token hoặc datapacket có lỗi, function sẽ bỏ qua Nếu bộ đệm của Endpoint trống, dữ liệu đượcnhận và function gửi lại ACK Nếu bộ đệm đang bận, function sẽ gửi NAK Cònnếu Endpoint có lỗi, function sẽ gửi lại STALL
Trang 36của host Kích thước dữ liệu lớn nhất đối với thiết bị low-speed là 8 byte, speed là 64 byte và high-speed là 1024 byte
full-* Truyền INTERRUPT cũng có hai kiểu truyền: IN và OUT
Hình 2.18 Hai kiểu truyền IN và OUT INTERRUPT
IN INTERUPT: Host sẽ poll định kỳ đối với INTERRUPT Endpoint Tốc
độ poll được mô tả trong Endpoint descriptor Mỗi poll là một lần host gửi INtoken Nếu IN token lỗi, function sẽ bỏ qua và tiếp tục theo dõi bus chờ IN tokenmới Nếu có một ngắt được yêu cầu bởi thiết bị, function sẽ gửi một data packetchứa ngắt đó khi nó nhận được một IN token Nếu host nhận thành công, nó sẽgửi lại ACK Nếu data packet bị mất thì host không làm gì Nếu một yêu cầungắt chưa sẵn sàng khi host gửi một IN token để thăm dò, function sẽ gửi lạiNAK Nếu Endpoint có lỗi, function sẽ gửi lại STALL
OUT INTERUPT: Khi host muốn gửi dữ liệu để ngắt thiết bị, nó sẽ gửi
Trang 37Nếu bộ đệm đang bận, nó sẽ gửi lại NAK Còn nếu Endpoint lỗi, nó sẽ gửi lạiSTALL
2.3.6.4 Isochronous transfer.
Isochronous transfer: Được sử dụng cho các yêu cầu dữ liệu liên tục và theothời gian thực, ví dụ: Audio, video…, Kiểu truyền này có phát hiện lỗi nhưngkhông sửa lỗi, phần mềm phải có khả năng phát hiện và sửa lỗi Kích thước góitin lớn nhất là 1023 byte đối với full-speed, 1024 byte đối với high-speed Dữliệu được chia nhỏ và có thể thay đổi kích thước phụ thuộc vào băng thông đểhạn chế lỗi đến mức tối thiểu
Hình 2.19 Truyền IN và OUT ISOCHRONOUS
Host gửi IN hoặc OUT token, sau đó gửi tiếp Data Packet (trong OUTIsochronous) hoặc nhận data Packet (trong IN Isochronous) Không cóhandshake packet
Trang 38CHƯƠNG 3: PHẦN MỀM 3.1 Lý thuyết chung
3.1.1 Phương pháp xây dựng đường cong.
Với 1 đường cong ( ), qua N điểm xác định (xi, yi) với i = 1 N Yêu cầu
vẽ lại đường cong ( ) từ N điểm đã biết ở trên 1 cách tương đối chính xác
Hướng giải quyết: Ta xây dựng lại đường cong ( ’) tương đối giống với
đường cong ( ) Với yêu cầu của bài toán ra ta có thể có các phương pháp nhưsau: phương pháp nội suy Newton, nối suy Lagrange, phương pháp bình phươngtối thiểu Đó là các phương pháp hay sử dụng khi giải quyêt các bài toán về nộisuy đường cong
3.1.1.1 Phương pháp nội suy Lagrange.
Trong thực tế nhiều khi phải phục hồi một hàm y=f(x) tại mọi giá trị x trongmột đoạn [a,b] nào đó mà chỉ biết một số nhất định các giá trị của hàm tại một sốđiểm cho trước Các giá trị này được cung cấp qua thực nghiệm hay tính toán, vìvậy nảy sinh vấn đề toán học là trên một đoạn a ≤ x ≤ b cho một loạt các điểm
xi(i=0,1,2…) và tại các điểm xi này giá trị của hàm là yi=f(xi) đã biết Bây giờ tacần tìm đa thức:
Trang 39Sao cho Pn(xi)=f(xi)=yi Đa thức Pn(x) được gọi là đa thức nộ suy của hàmy=f(x) Ta chọn đa thức để nội suy hàm y=f(x) là loại hàm đơn giản luôn có đạohàm và nguyên hàm, việc tính toán của nó theo thuật toán Homer cũng đơn giảnBây giờ ta xây dựng đa thức nội suy kiểu Lagrange Gọi L là đa thức:
Rõ ràng Li(x) là đa thức bậc n và:
(3.3)
Ta gọi đa thức này là đa thực Lagrange cơ bản
Bây giờ ta xét biểu thức: (5.4)
(3.4)
Ta thấy ( ) là một đa thức bậc b vì các Li(x) là các đa thức bậc n và thỏa
mãn điều kiện ( ) =f(xi) = yi Ta gọi nó là đa thức nội suy Lagrange
Với n=1 ra có bảng:
Trang 40Đa thức nội suy sẽ là:
Như vậy là một đa thức bậc nhất đối với x
Với n=2 ta có bảng
xy
Đa thức nội suy sẽ là: