Luận văn cao học Nguyễn Trường Thọ USB-Osilloscope 6 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ì
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SỸ
NGÀNH: ĐIỆN TỬ-VIỄN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PHẠM VĂN BÌNH
HÀ NỘI – 2008
Trang 2MỤC LỤC LỜI NÓI ĐẦU Error! Bookmark not defined CHƯƠNG 1: TỔNG QUAN VỀ OSCILLO VÀ PC OSCILLO Error!
Bookmark not defined
1.1 Giới thiệu chung Error! Bookmark not defined 1.1.1 Oxilo tương tự Error! Bookmark not defined 1.1.2 Oxilo điện tử số Error! Bookmark not defined 1.2 Tổng quan về PC Oscillo Error! Bookmark not defined
CHƯƠNG 2 GIỚI THIỆU CHUNG VỀ USB Error! Bookmark not
defined
2.1 Giới thiệu Error! Bookmark not defined
2.2 Kiến trúc tổng quan của hệ thống USB.Error! Bookmark not defined 2.2.1 Host: Error! Bookmark not defined 2.2.2 Thiết bị USB: Error! Bookmark not defined 2.2.3 Mô hình Bus vật lý Error! Bookmark not defined 2.2.4 Mô hình Bus logic Error! Bookmark not defined 2.2.5 Mối quan hệ Client software và function.Error! Bookmark not defined
2.2.6 Luồng dữ liệu USB Error! Bookmark not defined 2.3 Kiến trúc chi tiết Error! Bookmark not defined 2.3.1 Dây cáp USB Error! Bookmark not defined 2.3.2 USB Connecter Error! Bookmark not defined 2.3.3 Đặc tính điện Error! Bookmark not defined
Trang 3Phụ lục 1: Giao diện phần mềm
Trang 4Phụ lục 2: Mã nguồn thuật toán smooth
Public Sub smooths(ByRef dsx1() As Long, dsy() As Long, ByVal dem1 As
Long, ByVal color As ColorConstants) Dim kt As Boolean
Dim dsy1(1000) As Long
Dim batdongbo As Boolean
Dim moi As Double
Dim moi1 As Double
Dim J As Long
Dim bien As Double
If chuky < 4 And chuky > 0 Then
d = Int(4 / chuky)
bien = 4 - d * chuky
If bien <> 0 Then
bien = chuky / bien
bien = chuky / bien / 4
Trang 5If redraw = True Then
moi = gain * voltdiv
moi1 = timediv * 4 * bien
tgtgt = 4500
Else
moi = gain * 2 * voltdiv
moi1 = timediv * 8 * bien
Trang 6If dsy1(TG1) = dsy1(TG2) Then
d = fx(dsy1(), dsx1(), TG1 - 1, TG2, i) End If
Else
d = fx(dsy1(), dsx1(), TG1, TG2 + 1, i) End If
Trang 7If d = triggery And Not batdongbo Then
If d > 120 And d < tgtgt And batdongbo Then
frmMain.Picture1.PSet (i - ofset, d), color
End If
End If
Next
Trang 8Else
If Not batdongbo And ((frmMain.optf.value And triggery < dsy1(TG2) And triggery > dsy1(TG1)) Or (frmMain.optr.value And triggery > dsy1(TG2) And triggery < dsy1(TG1))) Then
ofset = dsx1(TG1) + (dsy1(TG1) - triggery) * (dsx1(TG2) - dsx1(TG1)) / (dsy1(TG1) - dsy1(TG2)) - 120
batdongbo = True
End If
If batdongbo Then
frmMain.Picture1.Line (dsx1(TG1) - ofset, dsy1(TG1))-(dsx1(TG2)
- ofset, dsy1(TG2)), color
Trang 9If TG2 < dem1 Then
tgtg1 = fx(dsy1(), dsx1(), TG1 - 1, TG2 + 1, i - 1) tgtg2 = fx(dsy1(), dsx1(), TG1 - 1, TG2 + 1, i + 1) Else
tgtg1 = fx(dsy1(), dsx1(), TG1 - 1, TG2, i - 1) tgtg2 = fx(dsy1(), dsx1(), TG1 - 1, TG2, i + 1) End If
Trang 10If d > 120 And d < tgtgt And batdongbo Then
frmMain.Picture1.PSet (i - ofset, d), color
Trang 11If d > 120 And d < tgtgt And batdongbo Then
frmMain.Picture1.PSet (i - ofset, d), color
Trang 12If d > 120 And d < tgtgt And batdongbo Then
frmMain.Picture1.PSet (i - ofset, d), color
End If
End If
Next
Else
Trang 13If Not batdongbo And ((frmMain.optf.value And triggery <
dsy1(TG2) And triggery > dsy1(TG1)) Or (frmMain.optr.value And triggery > dsy1(TG2) And triggery < dsy1(TG1))) Then
ofset = dsx1(TG1) + (dsy1(TG1) - triggery) * (dsx1(TG2) - dsx1(TG1)) / (dsy1(TG1) - dsy1(TG2)) - 120
batdongbo = True
End If
If batdongbo Then
frmMain.Picture1.Line (dsx1(TG1) - ofset, dsy1(TG1))-(dsx1(TG2)
- ofset, dsy1(TG2)), color
Trang 14Phụ lục 3: Thuật toán Smooth_add
Public Sub smooth_add(ByRef dsx1() As Long, dsy() As Long, ByVal dems As
Long, ByVal dem1 As Long, ByVal color As ColorConstants) Dim kt As Boolean
Dim dsy1(1000) As Long
Dim batdongbo As Boolean
Dim calculared As Boolean
Dim ris As Boolean
Dim star As Long
Dim moi As Double
Dim moi1 As Double
Dim J As Long
Dim max, min As Long
max = frmMain.sld6.value - dsy(dems)
min = frmMain.sld6.value - dsy(dems)
If redraw = True Then
moi = gain * voltdiv
Trang 15For i = dems To dem1
dsx1(i) = dsx1(dems - 1) + (i - dems) * moi1
dsy1(i) = frmMain.sld6.value - moi * dsy(i)
Trang 17End If
End If
End If
End If
If d > dsx1(dems - 1) And d < tgtgt And batdongbo Then
frmMain.Picture1.PSet (i - ofset, d), color
Trang 18ofset = dsx1(TG1) + (dsy1(TG1) - star) * (dsx1(TG2) -
dsx1(TG1)) / (dsy1(TG1) - dsy1(TG2)) - dsx1(dems - 1)
Trang 19frmMain.Picture1.Line (dsx1(TG1) - ofset, dsy1(TG1))-(dsx1(TG2)
- ofset, dsy1(TG2)), color
Trang 20tgtg1 = fx(dsy1(), dsx1(), TG1, TG2 + 1, i + 1) End If
If (ris And d > tgtg1) Or (Not ris And d < tgtg1) Then ofset = i - dsx1(dems - 1)
Trang 21tgtg1 = fx(dsy1(), dsx1(), TG1, TG2 + 1, i + 1) End If
If (ris And d > tgtg1) Or (Not ris And d < tgtg1) Then ofset = i - dsx1(dems - 1)
Trang 22tgtg1 = fx(dsy1(), dsx1(), TG1, TG2 + 1, i + 1) End If
If (ris And d > tgtg1) Or (Not ris And d < tgtg1) Then ofset = i - dsx1(dems - 1)
batdongbo = True
End If
Trang 23ofset = dsx1(TG1) + (dsy1(TG1) - star) * (dsx1(TG2) -
dsx1(TG1)) / (dsy1(TG1) - dsy1(TG2)) - dsx1(dems - 1)
Trang 24If dsy1(TG2) < min Then
min = dsy1(TG2)
End If
If batdongbo Then
frmMain.Picture1.Line (dsx1(TG1) - ofset, dsy1(TG1))-(dsx1(TG2)
- ofset, dsy1(TG2)), color
End If
End If
End If
Loop
For i = dems To dem1
dsx1(i) = dsx1(i) - ofset
Next
End Sub
Trang 25Phụ lục 4 : Thuật toán FFT cơ số 2
Public Function FFT(ByVal dir As Integer, ByVal m As Integer, ByRef y() As Double) As Boolean
Dim n, i, i1, j, k, i2, l, l1, l2 AsInteger
Dim c1, c2, ty, t1, t2, u1, u2, z As Double
'/* Calculate the number of points */
Trang 26Loop
j += k
Next
' /* Compute the FFT */ c1 = -1.0
Trang 27'/* Scaling for forward transform */ For i = 0 To n - 1
Trang 28Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
2.3 Kiến trúc chi tiết 26
2.3.1 Dây cáp USB 26 2.3.2 USB Connecter .26 2.3.3 Đặc tính điện .27 2.3.4 Định nghĩa tốc độ 28
Trang 29Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
2
2.3.5 Giao thức USB .28 2.3.6 Các phương thức trao đổi dữ liệu .32
CHƯƠNG 3: PHẦN MỀM 41
3.1 Lý thuyết chung 41
3.1.1 Phương pháp xây dựng đường cong .41 3.1.2 Phân tích phổ tín hiệu .51
3.2 Phương Pháp khôi phục dạng tín hiệu và phân tích phổ 57
3.2.1 Phương pháp khôi phục dạng tín hiệu 57 3.2.2 Thuật toán phân tích phổ ( FFT cơ số 2) 75
CHƯƠNG 4: KẾT LUẬN 78
4.1 Độ chính xác 78 4.2 Hạn chế và hướng nghiên cứu tiếp theo 78
TÓM TẮT LUẬN VĂN 80 TÀI LIỆU THAM KHẢO 81
Trang 30Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
3
LỜ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ần khô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át triể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ẩm thiế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ồn lự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 sinh viê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àm việ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ín hiệ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ông tá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ỏ hơ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
Trang 31Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
Trang 32Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
5
CHƯƠ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í
Trang 33Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
6
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
+ Đ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ó
Kªnh Z
Hình 1.1 Sơ đồ khối 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át sá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út ghi 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êu cầ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ện tượ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áo cáo này ta chỉ tập trung vào oxilo điện tử
Trang 34Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
7
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 oxilo tương tự 1 kênh Gồm có 4 phân hệ:
Lư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
Trang 35Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
Cặp tấm Y1, Y2 đặt song song nhau, cách nhau một khoảng dy và cùng song song với mặt phẳng ngang Khi có điện áp từ đầu ra của khuếch đại đối xứ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 đường sá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 để đánh dấ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éo bú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:
Trang 36Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
Hình 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ạch phâ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 thang 1:10 và 1:1 Nếu để thang 1:10 thì kết quả đọc ra trên oxilo phải x10
Khối chuyển mạch phân áp Y: Gồm 1 chuỗi mạch (R // C) tạo thành hệ số chia áp Kpa = Uvào/Ura Khi Uy vào càng lớn thì cần điều chỉnh sao cho Kpa càng lớn Khối này đưa ra mặt máy để điều chỉnh
Khố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
Trang 37Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
10
Tầng khuếch đại Y đối xứng: Tạo ra 2 điện áp ngược pha nhau đưa vào 2 tấ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ồn tạ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ạch phâ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ái tia X1, X2
Chế độ này được sử dụng khi oxilo thực hiện các phép đo các thông số bằng cá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ín hiệu có độ rộng hẹp và có chu kỳ dài
Trang 38Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
11
+ Đồng bộ trong: Tín hiệu đồng bộ đưa xuống được lấy từ Uy (lấy 1 phần tín hiệu Uy cần quan sát, đo đạc) Được sử dụng để đồng bộ dao động đồ trên mà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
- Tốc độ có thể thay đổi trong giới hạn rộng
- Các đoạn hình ảnh lưu giữ có thể xem lại được ở tốc độ thấp hơn nhiều, tốc độ quét có thể lên tới 1cm/1h
- Tạo được hình ảnh dao động đồ tốt hơn, tương phản hơn loại oxilo tương
tự
- Đơn giản hơn trong sử dụng và 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ép trực tiếp với máy tính hay được xử lí trong oxilo
Trang 39Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
12
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ớ
Trang 40Luận văn cao học
Nguyễn Trường Thọ USB-Osilloscope
13
- Mỗi số nhị phân được chuyển tới bộ nhớ và được nhớ ở vị trí ô nhớ riêng biệt Bởi vì đây là bộ nhớ không linh hoạt (cố định) nên nó có thể lưu trữ lượng thô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ột lệ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 theo chuỗ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 áp nà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ện
tử
- Do bộ nhớ được liên tiếp quét nhiều lần trong 1 giây nên màn hình được phá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ạng só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àm mượ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 đổi củ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 đặt microprocessor, các bộ biến đổi ADC có tốc độ nhanh hơn, kĩ thuật số hoá mới hơn, cách nội suy và phương pháp thể hiện tín hiệu