In multi-channel multi-radio wireless mesh networks (MCMR WMNs), assigning each radio with an appropriate channel to maximize the performance is a challenging problem. In this optimization, the primal concern lays on how to mitigate effects of interference to avoid performance degradation. However, collision-freedom for a given traffic demand under the limitation of precious channel resources has not been achieved yet. In this paper, we present a collision-free joint channel assignment and routing scheme called TACCA (Traffic-demand-Aware Collision-free Channel Assignment) for MCMR WMNs. To reduce the required number of channels, TACCA incorporates a property of CSMA (Carrier Sense Multiple Access), i.e., it adopts CSMA-aware interference model and a CSMA-aware shared link capacity model. We formulate a mixed integer linear programming (MILP) to optimize the network utility and enhance the practical usefulness under the given traffic demands. The evaluation results with a MILP solver show that TACCA achieves collision-freedom in both grid and random topology networks with 3-5 orthogonal channels, and exhibits good network utilization performance. In addition, the network simulation results show that TACCA achieves mostly collision-free communications under up-to-date PHY and MAC models, and presents excellent communication performance.