I do swimming for my cardio. It's zero impact, and the fact that I'm not a very good swimmer actually makes it a more strenuous cardio routine. (I'm less efficient in the water, so 20 laps for me burns more calories/raises my heart rate more than it would for a good swimmer.) Plus it's fun! I've hated running ever since the Army, and I have bad knees like you so I steer clear.